[C语言] 2014第一帖【关于c语言中结构体的应用】

[复制链接]
3302|18
 楼主| xyz549040622 发表于 2014-1-1 00:00 | 显示全部楼层 |阅读模式
本帖最后由 xyz549040622 于 2014-1-1 00:06 编辑

最近正迈步在由小白向小俠的道路上,碰到了一个关于结构体的问题

我需要再一个源文件中定义一个结构体全局变量,然后在所有的源文件中都会用到,现在的问题是,这个结构体只有在定义他的源文件中才会作用,放在主函数中就会提示多重定义,这个该如何解决呢
ningling_21 发表于 2014-1-1 00:01 | 显示全部楼层
沙发,抢到一个...
subukenai 发表于 2014-1-1 00:12 | 显示全部楼层
2014第一个回复,C语言很久不碰了
dong_abc 发表于 2014-1-1 01:27 | 显示全部楼层
本帖最后由 dong_abc 于 2014-1-1 01:32 编辑

2014年第一帖。

关键字:extern



Nick_Qiu 发表于 2014-1-1 08:46 | 显示全部楼层
//xxx.h  file
#ifndef __XXX_H
#define __XXX_H
typedef struct
{
//property
}user_struct_s;
#endif

评分

参与人数 1威望 +2 收起 理由
xyz549040622 + 2

查看全部评分

 楼主| xyz549040622 发表于 2014-1-1 09:32 | 显示全部楼层
Nick_Qiu 发表于 2014-1-1 08:46
//xxx.h  file
#ifndef __XXX_H
#define __XXX_H

这个样子也行
 楼主| xyz549040622 发表于 2014-1-1 09:33 | 显示全部楼层
dong_abc 发表于 2014-1-1 01:27
2014年第一帖。

关键字:extern

在.h中定义结构体名字,在.c中定义结构体变量,在.h中外部申明,这样才可以,好复杂

评论

yes, 不复杂,习惯就好!  发表于 2014-1-1 09:47
dong_abc 发表于 2014-1-1 09:38 | 显示全部楼层
本帖最后由 dong_abc 于 2014-1-1 09:42 编辑

在.h中定义
  1. class systick_t {
  2. public:
  3.       systick_t();
  4. private:
  5.       inline void SysTickInit(void);
  6. public:
  7.     SysTick_Timer SysTick_Timer_Flag;
  8. private:
  9.    
  10. };

  11. extern systick_t systick_tt;

外面的文件包含.h文件 ,
定义systick_t systick_tt;
systick_tt就可以用了。

不要搞个全局变量到处用,乱!
dong_abc 发表于 2014-1-1 09:46 | 显示全部楼层
今天 2014-01-01 这么好的日子,不要搞这些了,出去潇洒吧,偶撤了........再见!
 楼主| xyz549040622 发表于 2014-1-1 10:03 | 显示全部楼层
dong_abc 发表于 2014-1-1 09:46
今天 2014-01-01 这么好的日子,不要搞这些了,出去潇洒吧,偶撤了........再见! ...

你有姑娘么。。。还出去潇洒。。。我正在联系姑娘,丑一点也没事:dizzy:
-|continue;|- 发表于 2014-1-1 10:15 | 显示全部楼层
在.H文件中定义结构体原型,在.C中定义一个结构体变量,再在.H中把它声明为外部变量,So easy!
rocdove 发表于 2014-1-1 11:15 来自手机 | 显示全部楼层
上面都说了怎么用了,我建议你少用全局变量,
diweo 发表于 2014-1-1 14:39 | 显示全部楼层
用函数返回呀。如果结构体比较大就返回指针。
函数声明和结构定义都放在.h里面,别的文件再include这个.h文件
电子空对穴 发表于 2014-1-1 17:32 | 显示全部楼层
太复杂,不懂啊
MJM_WSY 发表于 2014-1-1 18:31 | 显示全部楼层
声明在.H文件中原型。加extern 声明变量,在.C中用
通宵敲代码 发表于 2014-1-1 22:10 | 显示全部楼层
再*.h中声明一下,定义的地方用extern注明,
用的时候#include进来就行了吧。
it_yrj 发表于 2014-1-1 23:51 | 显示全部楼层
ayb_ice 发表于 2014-1-2 08:12 | 显示全部楼层
这种情况明显直接在C文件中定义最好
落叶行健ywm 发表于 2014-1-3 11:56 | 显示全部楼层
楼上基本都是正解!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群: 嵌入式系统arm初学者 224636155←← +→→点击-->小 i 精品课全集,21ic公开课~~←←→→点击-->小 i 精品课全集,给你全方位的技能策划~~←←

2841

主题

19330

帖子

110

粉丝
快速回复 在线客服 返回列表 返回顶部