作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我一直在处理一段代码,其中有一个被忽视的 derp:
#include<stdio.h>
#include<stdlib.h>
#include<limits.h>
#define MAX_N_LENGTH
/*function prototypes*/
int main(){
...
}
删除上下文应该很容易发现:#define MAX_N_LENGTH
应该读作 #define MAX_N_LENGTH 9
。我不知道那个尾随常数去了哪里。
由于该宏仅以 char buf[ MAX_N_LENGTH + 1] 的形式用在一个地方
,因此很难跟踪和调试程序。
有没有办法使用 gcc 编译器捕获像这样的错误?
最佳答案
您可以使用 char buf[1 + MAX_N_LENGTH]
,因为 char buf[1 +]
不应编译时出现错误消息 error: expected expression before ']' 标记
:
关于c - 如何用 gcc 捕获未定义的预处理器宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39335324/
我是一名优秀的程序员,十分优秀!