结构体 是属于声明,还是定义?
最近看书,声明可以需要用到的地方声明很多次,定义一个程序中只能有一次
那么
struct AAA
{
int a;
};
这个结构体,在头文件中,被多个源文件调用,是不是说明这是对结构体类型的声明呢
有没有具体说明的相关文章
[解决办法]
看来,楼主的头脑中没有内部连接和外部连接的概念呀!!!
现在在给你科普一下...
时刻要注意区分内部连接和外部连接
以下情况有内部连接:
a)所有的声明
b)名字空间(包括全局名字空间)中的静态自由函数、静态友元函数、静态变量的定义
c)enum定义
d)inline函数定义(包括自由函数和非自由函数)
e)类的定义,当然也包括struct定义了
f)名字空间中const常量定义
g)union的定义
外部连接:在一个多文件程序中,假如一个名称在连接时可以和其它编译单元交互,那么这个名称就有外部连接。
以下情况有外部连接:
a)类非inline函数总有外部连接。包括类成员函数和类静态成员函数
b)类静态成员变量总有外部连接。
c)名字空间(包括全局名字空间)中非静态自由函数、非静态友元函数及非静态变量