c++ - #define 怀疑...为什么会出现这种行为

标签 c++ syntax macros

我定义了下面的max宏

#define max(a,b)(a>b?a:b);

在 main() 中我正在做以下事情

int t,a,b,c,d;

t=max(a,b)+max(c,d);

但结果并不如预期。t 只显示 a 和 b 中的最大值。 可能是什么问题?

最佳答案

这就像写:

t = (a>b?a:b);+(a>b?a:b);

(检查预处理器输出)

define 中删除 ;

关于c++ - #define 怀疑...为什么会出现这种行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19844527/

相关文章:

c++ - 在一个系统中关联另一个 make 实用程序时出错

c++ - 非静态常量数据成员有什么意义?

c++ - 将整数范围划分为几乎相等的整数范围

java - 语义和语法上冗余的花括号更改编译器错误消息

php - PHP 中二进制文件的前缀是什么?

c++ - VS2010只能在类内初始化static const整型数据成员

syntax - PHP类方法中使用的 undefined variable 没有错误

c - 如何将字符串转换为枚举数?

rust - 如何使用宏生成编译时唯一整数?

使用阿拉伯语和英语对宏文件进行 Javascript 文本文件编码