声明与定义的区别
声明是向编译器介绍名字--标识符。它告诉编译器“这个函数或变量在某处可找到,它的模样象什么”。而定义是说:“在这里建立变量”或“在这里建立函数”。它为名字分配存储空间。无论定义的是函数还是变量,编译器都要为它们在定义点分配存储空间。对于变量,编译器确定变量的大小,然后在内存中开辟空间来保存其数据,对于函数,编译器会生成代码,这些代码最终也要占用一定的内存。
在C和C++中,可以在不同的地方声明相同的变量和函数,但只能有一个定义(有时这称为ODR,单一定义规则)。。。
定义也可以是声明,如果有int x;,之前编译器未发现标识符x,编译器则把这一标识符看成是定义并立即为它分配存储空间。变量在一般情况下声明的同时也就是定义,其实你也可以完全把他们当一个东西。
原文地址:https://www.cnblogs.com/linuxAndMcu/p/8478226.html
时间: 2024-10-29 19:05:46