Loading

声明和定义区别


返回 我的技术栈(Technology Stack)



声明变量

不需要 建立存储空间,如:extern int a;

定义变量

需要 建立存储空间,如:int b;

#include <stdio.h>

int main()
{
	//extern 关键字只做声明,不能做任何定义
	//声明一个变量a,a在这里没有建立存储空间
	extern int a;
	a = 10;	// 报错!err, 因为没有分配建立空间,所以就不可以赋值

	int b = 10;	//定义一个变量b,b的类型为int,b赋值为10

	return 0;
}

从广义的角度来讲声明中包含着定义,即定义是声明的一个特例,所以并非所有的声明都是定义:

  • int b 它既是声明,同时又是定义

  • 对于 extern b 来讲它只是声明不是定义

一般的情况下,把建立存储空间的声明称之为“定义”,而把不需要建立存储空间的声明称之为“声明”。


参考:
[1]C基础讲义2018修订版(黑马程序员)


posted @ 2021-07-14 15:51  言非  阅读(133)  评论(0编辑  收藏  举报