gpt4 book ai didi

c++ - #define 导致 "expected primary-expression"错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:52:10 27 4
gpt4 key购买 nike

#define N 10;

int main()
{
int x;

for (int i=0; i<N; i++)
x = i;

return 0;
}

用 g++ 编译的结果:

test-define.cpp: In function ‘int main()’:
test-define.cpp:7:22: error: expected primary-expression before ‘;’ token
test-define.cpp:7:22: error: expected ‘)’ before ‘;’ token
test-define.cpp:7:24: error: name lookup of ‘i’ changed for ISO ‘for’ scoping [-fpermissive]
test-define.cpp:7:24: note: (if you use ‘-fpermissive’ G++ will accept your code)
test-define.cpp:7:27: error: expected ‘;’ before ‘)’ token

但是当我将第 7 行更改为 for (int i=0; i<10; i++) 时编译正常.

为什么会这样,我该如何使用 #define指令来完成我想要的?

最佳答案

删除分号 - 你会很好 - 分号包含在替换中

有时让编译器只运行预处理器很有用。使用 gcc/g++ 你可以做类似的事情

gcc -E file.c > result.txt

这将向您展示宏是如何扩展的(提示从文件末尾开始并向上扩展)

关于c++ - #define 导致 "expected primary-expression"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12327358/

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