在C语言中我们经常会说对变量进行定义和声明、对函数进行定义和声明。那么定义和声明到底有神马区别呢?为了便于理解和讲解我们这先给出一段奇葩代码,围绕着这个代码展开
奇葩代码:
#include <stdio.h>
void xiaofang();
int main()
{
xiaofang();
return 0;
}
void xiaofang(void)
{
extern a;
printf("%d",a);
return 0;
}
int a=10086;
一、函数和变量的定义
所谓定义就是原本没有,现在我们要创建一个函数或者变量,既然原来没有我们现在要新创建就需要为他申请空间并填充数据。举个栗子吧,在下面的代码中我们可以说定义了一个函数xiaofang但是不能说声明了。
二、函数和变量的声明
声明无需单独开辟存储空间,声明只是为了告诉函数,如果该函数/变量存在。在上面的程序中extern a;和void xiaofang();就是为了告诉程序如果你没找a你莫些急在外头有呢。由上面的介绍我们可以大概的区别出定义和声明的区别。但是这里要特殊给大家说明的是局部变量很特殊它既是声明也是定义。如果我的解释比较隐晦生涩,可以结合百度经验上的这篇文章一起服用C语言中变量定义与声明的区别
补充
今天愉快的在互联网是哪个冲浪的时候看到了另外一篇关于声明和定义的文章觉得还不错,分享给大家传送门