繁体   English   中英

C在不同的标头中定义具有相同名称的宏?

[英]C define Macro with same name in different header?

可以在不同的头文件中定义具有相同名称的宏吗?例如,在头文件ah和bh中,我们都定义了具有相同标识符的宏

只要两个文件不一起包含,就不会有任何麻烦。
如果要同时包含两个文件,请确保在包含第二个文件之前先取消定义此重复符号。

如果您不在同一文件中同时包含ah和bh,那么您都很好。 编译器甚至不会抱怨。 如果确实在同一个文件中声明了两个include,则编译器将发出警告,并将采用已声明的最新include的值,因为编译器必须做出选择。 EG:

#define foo 1 (啊)

#define foo 2 (bh)

在foo.c中:

#include "a.h"
#include "b.h"

foo将给出最后一个包含的值2。

如果您仍要使用它,请不要忘记解开重复项之一。

但是这种操作非常糟糕,因为您的代码可读性 行为不确定很有可能您甚至迷失自己的代码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM