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

cwi*_*ick 15 c c-preprocessor

我遇到了一些C代码,其中作者在整个地方使用以下习语:

typedef __int32 FOO_INT32;
#define FOO_INT32 FOO_INT32
Run Code Online (Sandbox Code Playgroud)

这样做有什么意义?typedef不应该足够吗?对于一些不稳定的C编译器来说,这是一种解决方法吗?

cla*_*laf 29

通过该#define指令,您将能够使用以下方法测试typedef是否已在代码中的其他位置完成:

#ifdef FOO_INT32
FOO_INT32 myfoo;
#else
int myfoo;
#endif
Run Code Online (Sandbox Code Playgroud)