||
这里的变量可分为局部变量、全局变量、宏变量、函数指针等,变量未定义而使用的情况很常见,具体可以分为如下几种情况。
1. 局部变量未定义
局部变量因为使用范围有限,未定义的情况很少见,多数情况是由变量名被写错而造成的。
2. 全局变量未定义
被多个文件使用的全局变量,在一个文件中定义,在其他文件中使用时需要extern它,全局变量未定义的情况通常是因为忘记了extern这个变量而造成的。
3. 宏变量未定义
宏变量通常被定义在头文件中,当在其他文件中使用该宏变量时,因为没有include它所在的头文件而造成变量未定义的错误。
4. 函数未定义
当使用另外一个文件中的某个函数时,编译时未将该文件包含进来,或者使用某个函数库中的函数,编译时却未链接该函数库,就会因为找不到该函数的定义而出错。
下面就演示一下全局变量未定义的情况,编写如下两个源代码文件,特意注释掉extern.c文件中的extern语句。
/*define.c*/
int num = 1024;
/*extern.c*/
#include <stdio.h>
//extern int num;
int main(void)
{
printf(“num=%d \n”, num);
return 0;
}
编译这两个文件时,提示num变量未定义。倘若我们去掉extern.c文件中的extern语句前面的注释,问题就迎刃而解了。
Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )
GMT+8, 2024-11-24 07:04 , Processed in 0.039344 second(s), 18 queries , Gzip On.
Powered by Discuz! X3.5
© 2001-2023 Discuz! Team.