相关疑难解决方法(0)

#if定义(WIN32)和#ifdef(WIN32)之间的区别

我正在编译将在linux gcc 4.4.1 C99上运行的程序.

我只是把我的#defines放在一起分开将在windows或linux上编译的代码.但是,我收到了这个错误.

error: macro names must be identifiers.
Run Code Online (Sandbox Code Playgroud)

使用此代码

#ifdef(WIN32)
/* Do windows stuff
#elif(UNIX)
/* Do linux stuff */
#endif
Run Code Online (Sandbox Code Playgroud)

但是,当我更改为此错误时,错误已得到修复:

#if defined(WIN32)
/* Do windows stuff
#elif(UNIX)
/* Do linux stuff */
#endif
Run Code Online (Sandbox Code Playgroud)

我只是想知道为什么我得到了这个错误以及为什么#defines不同?

非常感谢,

c

102
推荐指数
3
解决办法
8万
查看次数

标签 统计

c ×1