c++ - 为 future 的 'unset' 变量定义一个外部变量是一种好习惯吗?

标签 c++ extern

我正在查看一些代码示例。在 .h 文件中,有这样的声明:

extern int NODATA;

它在许多其他文件中用于没有逻辑值的变量。

是否有必要在其他地方定义它,还是可以不定义它?

最佳答案

如何使用?如果按值使用,则必须定义 某处,它将采用它在 initializer——默认为 0。(当然,它应该是 const.) 如果它只被地址使用(即&NODATA),那么它 仍然需要在某处定义。但在那种情况下, 惯用的约定是使用空指针:NULL(或0, 或者如果你有 C++11,nullptr),没有理由这样做 否则,您也不必定义任何其他内容。

关于c++ - 为 future 的 'unset' 变量定义一个外部变量是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16422241/

相关文章:

c - C 中全局变量的行为

C++:指针 vector 在 push_back() 之后失去引用

c++ - 如何设置 gcc 4.3 默认规范文件?

C# GetFunctionPointerForDelegate cdecl 而不是 stdcall

c++ - python中的ctype

c - 如何将一个 .c 文件中定义的结构填充到另一个 .c 中定义的函数中,而不将指针作为参数传递?

c++ - 项目消息 : You are running qmake on a generated . pro 文件。这可能行不通

c++ - 带约束的可变参数模板的 'requires' 表达式的语法是什么?

c - 外部代码不起作用

c++ - LNK2019 : Unresolved external symbol in C++/CLI