C中的(int)-1和(-1)有什么区别?

-7 c

我想知道以下是否相同:

#define IDEFAULT (-1)
Run Code Online (Sandbox Code Playgroud)

#define IDEFAULT (int) -1
Run Code Online (Sandbox Code Playgroud)

gsa*_*ras 5

我想知道以下是否相同:

两者在产生语法错误的意义上是相同的。

似乎您正在尝试在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)