首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在我关于c++的陈述中,我是否遗漏了什么?

在我关于c++的陈述中,我是否遗漏了什么?
EN

Stack Overflow用户
提问于 2010-10-29 00:51:30
回答 5查看 292关注 0票数 3

除了声明、定义和预处理器指令之外,不能在函数之外使用代码。

这句话是准确的,还是我漏掉了什么?我在教我的侄子编程,他想把while循环放在main之前。他还很年轻,我想给他一个他能理解的简单的规则。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-10-29 00:57:47

不完全是--您还可以将表达式放入全局变量声明中:

代码语言:javascript
代码运行次数:0
运行
复制
int myGlobalVar = 3 + SomeFunction(4) - anotherGlobalVar;

但是你只能把表达式放在这里,它的计算结果必须是你用来初始化全局变量的值。您不能放入完整的语句(没有代码块、没有if语句、没有循环等)。这段代码将在main()有机会运行之前执行,所以要小心这里的操作。我建议不要在全局初始化器中调用函数,除非你无法避免。

票数 2
EN

Stack Overflow用户

发布于 2010-10-29 00:59:40

为您的侄子准备

不,你不能这样做。

  • 为你自己:

从技术上讲,编译器的输入是在预处理器运行后得到的。所以,让我们把预处理器去掉。在它工作之后,您将得到一个C++程序,它的是一个声明序列。一些删除也可能是定义,而一些定义(如函数定义)中可能包含语句。

HTH

票数 1
EN

Stack Overflow用户

发布于 2010-10-29 00:54:20

是的--你不能把随机的可执行代码放在函数之外。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4045216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档