1. 经典优先级问题,你可以试试展开
2. 数组太大
by yukimianyan @ 2023-03-30 19:47:24
@[tndbsfk](/user/955141) 一个简单的例子:
```c
#include <assert.h>
#define subtract(a, b) a - b
static_assert(subtract(1, 2 - 3) * 4 == 8);
```
这段代码过不了编译,因为 `1 - 2 - 3 * 4` 的值是 `-13` 而不是 `8`。一般来说,能用函数代替的宏就不要写成宏。
```c
static int max_int(int a, int b) {
return a > b ? a : b;
}
```
by ud2_ @ 2023-03-30 20:00:33
@[yukimianyan](/user/509229)
谢谢
by tndbsfk @ 2023-03-30 21:47:09
@[ud2_](/user/206953)
明白啦,谢谢!
by tndbsfk @ 2023-03-30 21:47:41