相关疑难解决方法(0)

"const static"在C和C++中意味着什么?

const static int foo = 42;
Run Code Online (Sandbox Code Playgroud)

我在StackOverflow上的一些代码中看到了这个,我无法弄清楚它是做什么的.然后我在其他论坛上看到了一些困惑的答案.我最好的猜测是它在C中用来隐藏foo其他模块的常量.它是否正确?如果是这样,为什么有人会在C++上下文中使用它,你可以做到这一点private

c c++

111
推荐指数
7
解决办法
18万
查看次数

在头文件中声明静态全局函数

我遇到了别人写的一段代码.在头文件中声明为静态的几个全局函数.函数本身在单独的实现文件中定义.AFAIK,静态函数定义在定义函数的转换单元外部不可见.如果是这样,在头文件中声明静态函数有什么意义?

// in some header file
static void foo();


// in some implementation file
static void foo()
{
....
....
}
Run Code Online (Sandbox Code Playgroud)

c c++

10
推荐指数
1
解决办法
9782
查看次数

在C中定义const值

我有一个C项目,其中所有代码都组织在*.c/ *.h文件对中,我需要在一个文件中定义一个常量值,但也可以在其他文件中使用.我该如何声明和定义这个值?

它应该static const ...*.h文件中吗?如extern const ...*.h文件中并在*.c文件中定义?以何种方式,没关系吧的价值是不是原始数据类型(int,double,等),但char *还是struct?(虽然在我的情况下是一个double.)

*.h文件中定义内容通常不是一个好主意; 一个人应该在*.h文件中声明事物,但在*.c文件中定义它们.但是,这种extern const ...方法似乎效率低下,因为编译器无法内联该值,而是必须始终通过其地址进行访问.

我想这个问题的实质是:是否应该在C static const ...中的*.h文件中定义值,以便在更多的位置使用它们?

c const constants code-organization header-files

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

c ×3

c++ ×2

code-organization ×1

const ×1

constants ×1

header-files ×1