gpt4 book ai didi

c - 如何用 gcc 捕获未定义的预处理器宏?

转载 作者:太空狗 更新时间:2023-10-29 15:23:31 24 4
gpt4 key购买 nike

我一直在处理一段代码,其中有一个被忽视的 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 ']' 标记:

http://ideone.com/5m2LYw

关于c - 如何用 gcc 捕获未定义的预处理器宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39335324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com