lex*_*lex 8 c c++ syntax declaration
是int a;C中的声明或定义?C++有什么区别吗?
我一直认为这只是一个宣言,直到今天......
这是宣言还是定义?
caf*_*caf 19
一个声明描述了一个对象,而定义请求对象的创建.所有定义也都是声明,但反之则不然.
在这种情况下int a;,它取决于它在源代码中的位置:
int a;是一个定义 - 它要求创建一个int具有自动存储持续时间的变量(当然还有一个声明);int a;是一个暂定的定义(只要类型和链接是可以接受的,就可以有多个定义); 在C++中,它是一个带有外部链接的普通定义.struct或union说明符中,int a;是成员的声明.它在你的程序中出现在哪里?
在大多数情况下,它既是宣言又是定义.
OTOH,extern int a;仅是声明.