weidu23 2021-12-17 13:53 采纳率: 0%
浏览 109
已结题

.h中如何定义并初始化结构体

为了方便开发,我定义了一个 Global.h 的文件,并在这个文件里,定义了一个结构体Stu,为了方面运用,我又定义了一个 EmptyStu,并予以复制,如代码所示:

#ifndef _GLOBAL_H_
#define _GLOBAL_H_
struct Stu{
    char * name ;
    char * info ;
    long age ;
}
typedef struct Stu Stu ;
const Stu EmptyStu = {NULL,NULL,0}

#endif

就是这样一段程序,结果报错,有2个错误:


 Main.c:(.bss+0x0):multiple definition of `EmptyStu'
Global.c:(.bss+0x0): first defined here
 LoginUI.c:(.bss+0x0): multiple definition of `EmptyStu'
Global.c:(.bss+0x0): first defined here

注意,我这里Main.c和LoginUI.c都导入了"Global.h"。

提问:
1、我想不通为什么会重复定义;
2、在.h文件中,如何定义了结构体后,又给予其中一个变量固定的赋值,并最好保持其全局变量特征,以及const保证其不会改变呢?

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-12-17 13:59
    关注

    给结构加构造函数进行默认值初始化

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月22日
  • 修改了问题 12月17日
  • 创建了问题 12月17日

悬赏问题

  • ¥15 yolov8边框坐标
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂