Effective C++ 学习笔记条款2之 为什么要尽量避免使用#define

it2025-10-25  10

来看下面的代码

#include <stdio.h> #include <string.h> #define CALL_WITH_MAX(a,b) ((a)>(b)?(a):(b)) int main() { int a= 5,b = 0; CALL_WITH_MAX(++a , b); printf("a:%d \r\n",a); a = 5; CALL_WITH_MAX(++a , b+10); printf("a:%d \r\n",a); }

输出:

a:7 a:6

a的大小取决于宏函数比较的情况,这是为什么?

 

最新回复(0)