c - 在 C 中说 "#define FOO FOO"有什么意义?

标签 c c-preprocessor

我遇到了一些 C 代码,其中作者在各处使用了以下习语:

typedef __int32 FOO_INT32;
#define FOO_INT32 FOO_INT32

这样做的意义何在? typedef 还不够吗?它是一些不稳定的 C 编译器的解决方法吗?

最佳答案

使用 #define 指令,您将能够测试 typedef 是否已在代码中的其他地方完成,使用:

#ifdef FOO_INT32
FOO_INT32 myfoo;
#else
int myfoo;
#endif

关于c - 在 C 中说 "#define FOO FOO"有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40589061/

相关文章:

c - 用非阻塞函数替换 system()

c - 显式类型转换 VS 隐式类型转换

Android xamarin visual studio 错误 : 'System.Configuration.dll'

c# - CS, __LINE__ 不可用,能不能写个替代方案?

c - C 中的预处理器命令算作 token 吗?

c - 将单个 define 语句与 include guards 用于类似函数的宏?

c - 如何将函数的定义传递给其他函数,以便其他函数在 C 语言中调用它?

c - 在具有多个输入值的 C 中使用 atof() 函数

c# - 选择构建服务器

c - 使用 C 预处理器为 scanf 构造字符串文字?