小组 » » » 讨论区

编辑

发表于01-01 08:00 浏览次
分享到:

已有7条评论

  • 永不止步步
    永不止步步 07-20 14:30

    切记切记,定义的变量要放在C文件里,声明才放在H文件。

  • 永不止步步
    永不止步步 07-20 14:30

    标准的做法还是在.h文件中声明变量,在一个.c文件中定义变量,其它.c文件要用到变量只要包含.h头文件,相当于变量声明,就可以引用其它.c文件中定义的变量了。

  • 永不止步步
    永不止步步 07-20 14:29

    即使可以通过#ifdef的方式解决问题,这也不是好的方法,对于变量的定义,应放在实现文件里面,然后通过extern的方式来引用

  • 永不止步步
    永不止步步 07-20 14:29

    上面提到的方法也不通用,比如说有几个.c文件要包含同一个.h文件,而那个.h文件定义了变量或者结构编译还是会通不过,比较通用的方法是:专门用一个.c文件来定义变量或者结构,用对应的.h文件来声明。所有的.c文件都则都可以包含声明变量的.h文件。

  • 永不止步步
    永不止步步 07-20 14:29

    在WARN.h文件的最开始两行加上
    #ifdef_WARN_H_
    #define_WARN_H_
    在该文件的最后一行加上
    #endif

  • 永不止步步
    永不止步步 07-20 14:29

    你的头文件没有用LS那个所说的条件编译指令
    当你在多个地方包含这个头文件的时候,就会在两个地方产生定义
    因为,其实包含也是比较单纯的文本复制,相当于一个头文件被分别复制到两个地方,这个编译的时候当然就冲突了

  • 永不止步步
    永不止步步 07-20 14:29

    一般只在头文件中声明变量,在原文件中定义变量,即使你在头文件中使用了预编译指令#ifndef....#define...#endif,也不能在头文件中定义变量。

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

()
金币:|学分:

同小组最新话题

立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号