C:#define指令是否全球化?

前端之家收集整理的这篇文章主要介绍了C:#define指令是否全球化?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有点混淆了#define语句.在图书馆中,它们似乎是跨不同文件进行沟通的手段,拥有很多#ifdefs和#ifndefs.

话虽如此,我现在有两个文件file1.c和file2.c编译在一起,#define TEST 10在file2.c中.然而,当我在file2.c中使用TEST时,编译器会提供以下错误消息:

'TEST' undeclared (first use in this function)

#define伪指令是否全球化?

解决方法

#define不是全局的,它们只是一个替代,它曾经被使用过(如果在相同的编译单元中声明)

它们不是全局变量,它们不是符号,它们在链接上是无关紧要的,它们只与预编译有关.

猜你在找的C&C++相关文章