【发布时间】:2017-02-24 01:25:54
【问题描述】:
我在使用 Visual Studio 2015 时遇到了一个奇怪的问题。每当我使用函数下方的宏时,我正在使用它的函数对 Visual Studio 来说都是未定义的。值得一提的是,这只是一个视觉问题,在编译时不会造成任何问题。还值得一提的是,这仅在我使用变量作为最大值时才会发生。这是宏:
#define fiz(MAX_VALUE) for (unsigned int i = 0; i < (MAX_VALUE); i++)
void functionFoo()
{
unsigned int max_val = 10;
fiz(max_val) { // if I use 10 here I don't experience the same issue
/* do stuff */
}
}
编辑: 所以我的问题是,是否有其他人遇到过相同/类似的问题,他们是否能够解决? 编辑2: 经过进一步搜索,我遇到了this question。显然,自 Visual Studio 2005 以来,此问题(或根据文章与性能相关的设计选择)一直存在。遵循该链接中的解决方案已解决了该问题。
【问题讨论】:
-
在循环前创建
i并在循环中初始化 -
@Jguillot 感谢您的快速回复。无论我在哪里声明
i,仍然遇到同样的问题 -
编译器是怎么说的?
-
编译没有问题,所以什么也没说。这是一个视觉错误,导致我的函数声明显示为未定义。
-
问题是什么?你忘了问一个。
标签: c visual-studio-2015