【发布时间】:2013-08-27 13:50:36
【问题描述】:
我是 code::blocks 的新手,对 c++ 也很陌生。我知道有很多关键字,我不应该将它们用于变量名称,并且它们通常以不同的颜色显示,就像它们在 visualstudio 中一样。现在,当我将一些代码片段从旧的 vs 项目复制到新的 code::blocks 项目时,我的一些变量名突然变了颜色。例如,在这段代码中,变量 begin 和 end 现在显示为绿色,我不明白为什么。
int begin = 0;
int end = 4;
int myarray[end];
for (int i = begin; i < end; i++)
{
myarray[i] = i;
}
在某些情况下,此代码甚至无法编译,并且出现奇怪的“冲突声明”错误。无论如何我可以使用这些名称,还是它们以某种方式保留在 code::blocks 中?我查看了一些书籍,但据我所知,它们不是 C++ 关键字。是我现在使用 c++11 的原因吗?我正在使用 ide 的 v.12.11 和随附的 mingw 编译器。感谢您的帮助。
【问题讨论】:
-
如果你使用 C++11 和
using namespace std;,begin 和 end 实际上是函数。 en.cppreference.com/w/cpp/iterator/begin -
我建议避免使用所有通用变量名称,例如 begin、end、index 等。更具描述性的名称将使代码更清晰,您可以完全避免整个问题。
-
那些不是关键字。它们是标准库容器的成员函数的名称,也是自 C++11 以来
std::命名空间中的非成员函数的名称。您的 IDE 必须经过培训才能识别它们。您应该避免使用这些名称,但使用它们不一定是错误的。 -
进入设置->编辑器->语法高亮->关键字...
-
@JerryGagnon 怎么能更具描述性?
firstIndexIWantToLoopOver和onePastTheLastIndexIWantToLoopOver?
标签: c++ c++11 codeblocks