声明与定义

定义声明最重要的区别:定义创建了对象并为这个对象分配了内存,声明没有分配内存。

声明(declaration )指定了一个变量的标识符,用来描述变量的类型,是类型还是对象,或者函数等。

声明,用于编译器(compiler)识别变量名所引用的实体。

定义是对声明的实现或者实例化。连接器(linker)需要它(定义)来引用内存实体。

总结

如果只是为了给编译器提供引用标识,让编译器能够知道有这个引用,能用这个引用来引用某个实体(但没有为实体分配具体内存块的过程)是为声明。

如果该操作能够为引用指定一块特定的内存,使得该引用能够在link阶段唯一正确地对应一块内存,这样的操作是为定义。

声明是为了让编译器正确处理对声明变量和函数的引用。

定义是一个给变量分配内存的过程,或者是说明一个函数具体干什么用。




猜你喜欢

转载自blog.csdn.net/weixin_38491862/article/details/80691976