【发布时间】:2016-05-21 06:38:22
【问题描述】:
我正在使用 Visual Studio 2015 学习一些基本的 C。在尝试 EOF 符号常量时,我决定查找它的定义,这就是我发现的:
#define EOF (-1)
虽然 -1 被括在括号中有点奇怪,所以我决定创建自己的 -1 符号常量,所以我做了以下操作:
#define ABC -1
在调试器中,EOF 和 ABC 都显示为值 -1,所以我开始想,为什么 EOF 定义使用 (-1) 来表示 -1 而似乎不需要括号?
谢谢。
【问题讨论】:
-
int i = 0, j; j = i-ABC. -
@Olaf 很有趣,我永远不会想到它,因为
i-ABC是我不可能写的,我会写i - ABC这样问题就不会发生,但是你真的很好给出了这个例子,因为它清楚地证明了括号是正确的。 -
@iharob:当然,我也会使用空格。但只要看看这里显示的代码......
-
@Olaf 有趣的是 gcc (Cygwin C Compiler 4.9.3 -std=c1x) 编译
#define ABC -1 int i = 0, j; j = i-ABC就像#define ABC (-1)。也许不是所有的编译器都这么表现。
标签: c