声明与定义

来源:互联网 发布:javascript面试题目 编辑:程序博客网 时间:2024/05/17 22:09

int i; /*声明*/
int i = 0; /*定义*/

void fun(int a); /*声明*/
void fun(int a){return a+3;} /*定义*/

声明和定义的最大区别就是:
声明是不占内存的,定义是分配了内存。

注:main.c和test.c都在同一个工程目录下

例一:
在main.c中
void main(void) /*定义*/
{
 printf("test");
}

在test.c中
void main(void) /*定义*/
{
 printf("test");
}

编译出错,提示重复定义


例二:
在main.c中
int i = 1;/*定义*/
void main(void)
{
 fun();
 printf("%d/n", i);
}

在test.c中
int i;/*声明*/
void fun(void) /*定义*/
{
 i = 3;
}

编译无错,输出3;


例三:
在main.c中
int i = 3;/*定义*/
int j = 4;/*定义*/
void main(void)
{
 fun();
 printf("%d   %d/n", i, j);
}

在test.c中
double i;/*声明*/
void fun(void) /*定义*/
{
 i = 0.0;
}

编译不报错,输出0   0


摘自亚嵌的视频

原创粉丝点击