【发布时间】:2019-11-15 22:22:21
【问题描述】:
我想知道以下是否相同:
#define IDEFAULT (-1)
和
#define IDEFAULT (int) -1
【问题讨论】:
-
我投票决定将此问题作为离题结束,因为在比较和对比可能的语法错误的无限组合时,我没有看到很多价值。
-
这样做的目的是什么?您是否通过反复试验来学习?
-
是的,两者都是一样的。无论如何,
-1的类型为int。但是可能会有一些棘手的用法。例如,如果您有一个名为foo的函数,那么foo IDEFAULT;在第一种情况下会导致合法调用foo(-1);,但在第二种情况下会导致非法foo (int) -1;。 -
我投票决定将此问题作为题外话结束,因为它不太可能对未来的读者有用。
-
这两个是一样的。他们定义了一个名为
IDEFAULT的宏,其值为-1。如果您改为:#define IDEFAULT -1,那么情况会略有不同;如果有人写了:5 IDEFAULT,上面的定义就是4。使用您的两个定义,这将是一个语法错误(在这种情况下会很好)。
标签: c