找回密码
 注册
搜索

10. GCC给出的错误信息(变量未定义而使用)

已有 153 次阅读2014-2-4 15:37 |个人分类:Linux编程| GCC, 编译器, 变量未定义, Linux编程

这里的变量可分为局部变量、全局变量、宏变量、函数指针等,变量未定义而使用的情况很常见,具体可以分为如下几种情况。

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语句前面的注释,问题就迎刃而解了。


路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-9-29 19:21 , Processed in 0.031328 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部