C语言中变量声明和定义

C语言中变量声明和定义
很多初学者,对变量的定义和声明分不请, C C++ 中略有不同,再加上 const static extern 就更加混乱,下面就此问题给予详细讲解并举例说明。

变量的定义:为变量分配存储空间,同时指明变量的类型和名字。另外变量的初始化,就是在变量的定义处给出值。

变量的声明:它主要向程序声明变量的类型和名字。

static修饰符:static int a;将变量的作用域限制在一个源文件内,对其他源文件a是不可见的。

严格的规则:变量有且只能有一次定义,但是可以声明多次,使用变量前必须定义或声明。一个项目中可以有多个源文件,但在所有的源文件中只允许出现一次对某个变量的定义。

举例说明:

**************************************************************************

int i;          //定义

int i=2;       //定义

static int i;  //定义

extern int i=8; //定义

extern int i;      //这就是单纯的声明

*************************************************************************
问题1:如果外部变量的定义各指定一个初始值?大多数系统都会拒绝接受该程序。

C语言中变量声明和定义 - myswirl - myswirl
 
问题2:如果一个外部变量在多个源程序中定义却未指定初始值?某些系统可能会接受,例如VC6.0
同样的程序在VC++无法编译通过。
C语言中变量声明和定义 - myswirl - myswirl
 如果要在所有的C语言实现中避免上述问题,惟一的解决办法就是 每个外部变量只定义一次

问题3:同一变量名在不同文件中声明为不同的类型?需要程序员自己检查。
C语言中变量声明和定义 - myswirl - myswirl

解决上述问题,只需接受一个简单的规则: 每个外部变量只在一个头文件中声明,需要用到外部变量的地方都应该包括这个头文件,特别指出,定义该外部变量的模块也应该包括这个头文件。



为什么C中的const全局变量不需要赋初值,而C++中的const全局变量需要赋初值?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值