【发布时间】:2010-10-01 04:59:54
【问题描述】:
我有一个文件:
变量包含.h
#ifndef _variableinclude_h_
#define _variableinclude_h_
AClass* variable1;
int* variable2;
#endif
但我将此文件包含在另外两个不同的文件中:
- atest1.h
- atest2.h
问题如下:变量重定义。
如何避免这种情况???
【问题讨论】:
-
您遇到链接器错误或编译器错误?
-
请注意,包含保护非法使用保留前缀 (
_v)。此外,按照惯例,宏是大写的。 -
@MSalters:为什么要保留这个?我认为不应该只使用双下划线。
-
@ur:双下划线在标记中的任何地方都保留,而不仅仅是作为前缀。并且它们被保留以供实现未指定使用。例如。只要您
#include <variableinclude.h>,编译器就可以在内部定义_variableinclude_h_。 -
保留任何包含双下划线的标识符。任何以下划线开头后跟大写字母的内容都是保留的。如果在命名空间范围内声明以下划线开头的任何其他内容(您的包含保护是)
标签: c++ variables redefinition