您的位置 首页 方案

KEILC51编译问题ERROR L104

c/c++语言中有很多地方要用到extern,但是如果没有真正的了解它的意义,会给编程带来很大的麻烦,为了使大家少走弯路,特祥细的说明一下。…

c/c++言语中有许多当地要用到extern,可是假如没有真实的了解它的含义,会给编程带来很大的费事,为了使咱们少走弯路,特祥细的阐明一下。
关于比较小的程序,一般只要一个c文件和一个头文件,全局变量咱们通常会直接界说在c文件中,在程序之前加int i界说。假如要在头文件中界说有以下两种办法:用extern来声明:extern int i;这一句仅仅对变量i进行声明,在c文件的程序之前有必要加上int i进行界说。extern int i=0;这一句声明和界说都做了。
关于大一点的程序,有许多c文件和头文件,这个时分全局变量就有必要在头文件中声明(不需求初始化),然后在一个c文件中界说(该初始化的要初始化)。假如在头文件中界说,则编译的时分会呈现重复界说的过错。假如只要头文件中声明就会呈现没有界说有正告。
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: K
MODULE: 222.obj (222)
呈现上述过错则是由于变量k重复界说,把你的头文件中的变量界说前加extern(仅仅变量声明不必初始化),再在某一个你要调用该变量的c文件的程序之前再界说(留意第一个调用的c文件要担任顺便初始化该变量,其他调用的c文件就不需求初始化进程啦)

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/266664.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部