-7 c
我想知道以下是否相同:
#define IDEFAULT (-1)
Run Code Online (Sandbox Code Playgroud)
和
#define IDEFAULT (int) -1
Run Code Online (Sandbox Code Playgroud)
我想知道以下是否相同:
两者在产生语法错误的意义上是相同的。
似乎您正在尝试在C中使用宏,并且正确的语法是:
#define macro-name char-sequence
Run Code Online (Sandbox Code Playgroud)
所以我写例如:
#define myMacro -1
Run Code Online (Sandbox Code Playgroud)
其中myMacro将等于-1。如果用括号将-1括起来,那不会有什么不同。在“ 为什么在C中使用宏”中了解有关此内容的更多信息。
PS:但是,语法错误并不相同:
main.c:3:9: error: expected declaration specifiers or '...' before '-' token
3 | define (-1)
| ^
Run Code Online (Sandbox Code Playgroud)
和
main.c:3:1: warning: return type defaults to 'int' [-Wimplicit-int]
3 | define (int) -1
| ^~~~~~
main.c: In function 'define':
main.c:3:14: error: expected declaration specifiers before '-' token
3 | define (int) -1
| ^
main.c:3:9: error: parameter name omitted
3 | define (int) -1
| ^~~
main.c:8: error: expected '{' at end of input
8 | }
|
Run Code Online (Sandbox Code Playgroud)