C语言中声明、定义和初始化的区别

函数和变量(全局变量)都有声明定义
对于函数而言:
	同一文件内,如果函数fun_1调用fun_2时,如果fun_2在fun_1之后定义,则需在fun_1之前对fun_2进行声明,如下:	
void fun_2();// 声明
void fun_1() { 
...
fun_2();
...
 } // 调用fun_2
void fun_2() { ... } // 定义
不同文件内,调用外部函数时,需要先#include对应头文件(头文件包含函数的声明,可直接导入源文件,但不建议),接着调用该函数。

 
 
对变量而言:
	不管在同一个文件还是不同的文件内,在定义之前使用必须提前声明,并且在声明时要使用关键词extern:	
// 同一文件内的情况:
extern int b;
main()
{
    printf("b = %d\n", b);
}
int b = 3;
此外,其声明用于说明变量的属性(主要是变量的类型),且可多次声明;而变量的定义除此以外还将引起存储器的分配,且只能定义一次。
注意:定义是一种特殊的声明。
int sp;
double val[MAXVAL];
// 这两条语句定义变量sp和val,并为之分配存储单元,同时这两条语句还可以作为该源文件其余部分的声明。
extern int sp;
extern double val[];
// 这两条语句只是做了声明,并没有分配存储空间

注意:在定义中必须指定数组的长度,但extern声明则不一定要指定数组长度。
 
 
 
变量初始化在变量的定义同时进行赋值,定义之后再赋值不叫初始化。
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值