除了声明、定义和预处理器指令之外,不能在函数之外使用代码。
这句话是准确的,还是我漏掉了什么?我在教我的侄子编程,他想把while循环放在main之前。他还很年轻,我想给他一个他能理解的简单的规则。
发布于 2010-10-28 16:57:47
不完全是--您还可以将表达式放入全局变量声明中:
int myGlobalVar = 3 + SomeFunction(4) - anotherGlobalVar;
但是你只能把表达式放在这里,它的计算结果必须是你用来初始化全局变量的值。您不能放入完整的语句(没有代码块、没有if
语句、没有循环等)。这段代码将在main()
有机会运行之前执行,所以要小心这里的操作。我建议不要在全局初始化器中调用函数,除非你无法避免。
发布于 2010-10-28 16:59:40
为您的侄子准备
不,你不能这样做。
从技术上讲,编译器的输入是在预处理器运行后得到的。所以,让我们把预处理器去掉。在它工作之后,您将得到一个C++程序,它的是一个声明序列。一些删除也可能是定义,而一些定义(如函数定义)中可能包含语句。
HTH
发布于 2010-10-28 16:54:20
是的--你不能把随机的可执行代码放在函数之外。
https://stackoverflow.com/questions/4045216
复制