加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

C++变量的定义方位

发布时间:2022-07-02 09:48:40 所属栏目:语言 来源:互联网
导读:C++ 不但在C语言的基础上进行了很多扩展,而且也对C语言部分做了细节上的改进,变量的定义位置就是其中之一。 C89 规定,所有局部变量都必须定义在函数开头,在定义好变量之前不能有其他的执行语句。C99 标准取消这这条限制,但是 VC/VS 对 C99 的支持很不积
  C++ 不但在C语言的基础上进行了很多扩展,而且也对C语言部分做了细节上的改进,变量的定义位置就是其中之一。
 
  C89 规定,所有局部变量都必须定义在函数开头,在定义好变量之前不能有其他的执行语句。C99 标准取消这这条限制,但是 VC/VS 对 C99 的支持很不积极,仍然要求变量定义在函数开头。
  C89 和 C99 是两套不同的C语言标准,C99 是 C89 的升级版,我们已在《C语言的三套标准:C89、C99和C11》中进行了讲解。
  请看下面的代码:
  #include <stdio.h>
  int main(){
      int a;
      scanf("%d", &a);
      int b;
      scanf("%d", &b);
      int c = a + b;
      printf("%dn", c);
      return 0;
  }
  将代码保存到源文件main.c,那么它可以在 GCC、Xcode 下编译通过,但在 VC/VS 下会报错。GCC、Xcode 对 C99 的支持非常好,可以在函数的任意位置定义变量;但 VC/VS 对 C99 的支持寥寥无几,必须在函数开头定义好所有变量。
 
  将上面的代码再保存到源文件main.cpp,那么它在 GCC、Xcode、VC/VS 下都可以编译通过。这是因为 C++ 取消了原来的限制,变量只要在使用之前定义好即可,不强制必须在函数开头定义所有变量。
  注意源文件的后缀,.c是C语言代码,.cpp是C++代码,它们的编译方式不同。
 
  在 for 内部定义循环控制变量 i,会让代码看起来更加紧凑,并使得 i 的作用域被限制在整个 for 循环语句内部(包括循环条件和循环体),减小了命名冲突的概率。在以后的编码过程中,我推荐这种写法。

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!