2017-09-26 124 views
0

我有这个标识无法解析标识符:“COL”

#define COL 32 

我用它来创建一个数列,都做工精细然而,调试代码的一部分,我在其中,我添加COL来观看(Visual Studio),并得到了“无法解析标识符”的消息,而不是一个值。代码编译和运行良好,但我不能检查某些东西。我试图注释掉我的功能如果我在那里做了某些事情,但这并没有帮助,我一直在研究代码几个星期,它一直运行良好,我没有更新任何东西,我完全无所适从......

+0

'COL'不是一个变量,在所有的地方'COL'用在代码中它将被替换为它的值:https://en.wikipedia.org/wiki/C_preprocessor – Raxvan

+0

我认为你应该因为它不是一个标识符,或者如果你能够做到这一点,但是从VS那里得到投诉,它可能是一个错误或一个错误配置。在我看来,VS是绝对的BS,所以切换到Linux并使用纯粹的GCC或铿锵声。 – ForceBru

+0

我可以用cout <<“COL”<< COL <<“\ n”打印值; – Flisp

回答

0

宏是在编译的最早阶段由预处理器替换为。之后,代码中没有COL符号。

如果使用C++,做到这一点的C++方式:

namespace constants { 
    constexpr int coloums = 32; 
} 

预处理器的使用正在变得越来越远,每次之间的C++标准的修订。我们不需要它来定义积分常量,事实上从来没有这样做。

+0

谢谢!我替换了所有的#define,现在我可以遵循所有的值。 – Flisp

+0

@Flisp - 很高兴它为你整理:) – StoryTeller

相关问题