“int a;”是C和C中的声明或定义吗?

是int a; C中的声明或定义? C有什么不同吗?

我一直认为这只是一个宣言,直到今天……

这是宣言还是定义?

最佳答案
声明描述对象,而定义请求创建对象.所有定义也都是声明,但反之则不然.

在int a;的情况下,它取决于它在源代码中的位置:

>在函数内,int a;是一个定义 – 它要求创建一个具有自动存储持续时间的int变量(当然还有一个声明);
>在文件范围内,答案在C和C中有所不同.在C中,int a;是一个暂定的定义(只要类型和联系是可以接受的,可以有多个定义);在C中,它是具有外部链接的普通定义.
>在结构或联合说明符中,int a;是会员的声明.

转载注明原文:“int a;”是C和C中的声明或定义吗? - 代码日志