首页 > 编程知识 正文

汇编语言声明全局变量,python编译全局变量未定义

时间:2023-05-05 22:27:54 阅读:183216 作者:1901

extern 全局变量 编译出mutiple reference错误: 对于全局变量,extern的使用。由于基础不牢固,半路出家,有时候很混乱,容易犯多重定义定义mutiple reference。总结一下,自己错误的原因,分享一下经验。 情况一:对于共有的头文件test.h,有extern int num;这是对变量num的声明,如果要在a.c文件中使用变量num。那么必须 1.包含头文件test.h 2.必须对num进行定义。在函数外 , int num = 0; 情况二:在情况一的基础上,如果另一个b.c文件也想使用num,进行上面两步操作,第一步没有问题,因为作用就是声明。第二步就会造成多重定义num的错误。因为num已经在a.c文件中定义,在内存中已经占用空间,无需再定义。正确的做法时,直接在b.c 函数体内使用。 情况三:对于全局变量经常犯错误的原因,在test.h头文件中extern int num = 0;或者int num = 0;这句话是等价的,都是num的定义,当只有一个.c文件使用时,不会报错。当两个及其以上.c文件包含该头文件时,即使头文件加了 #ifndef TEST_H_ #def TEST_H_ ......... #endif 这样的宏控制,编译时,也会出重定义的错误。解决方法是,将int num = 0;放入一个.c文件中。头文件.h中只需加extern int num; 最后,从根本上说明一下问题; 定义: 直接在内存中,分配一个空间,这个空间有名,并且有值,定义只能有一次。 声明:告诉编译器,内存中有这样的变量,并有存储变量的空间, 声明可以有多次

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。