打印
[C语言]

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

[复制链接]
2503|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



使用特权

评论回复
5
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
6
xyz549040622|  楼主 | 2014-1-1 09:32 | 只看该作者
Nick_Qiu 发表于 2014-1-1 08:46
//xxx.h  file
#ifndef __XXX_H
#define __XXX_H

这个样子也行

使用特权

评论回复
7
xyz549040622|  楼主 | 2014-1-1 09:33 | 只看该作者
dong_abc 发表于 2014-1-1 01:27
2014年第一帖。

关键字:extern

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

使用特权

评论回复
评论
dong_abc 2014-1-1 09:47 回复TA
yes, 不复杂,习惯就好! 
8
dong_abc| | 2014-1-1 09:38 | 只看该作者
本帖最后由 dong_abc 于 2014-1-1 09:42 编辑

在.h中定义
class systick_t {
public:
      systick_t();
private:
      inline void SysTickInit(void);
public:
    SysTick_Timer SysTick_Timer_Flag;
private:
   
};

extern systick_t systick_tt;

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

不要搞个全局变量到处用,乱!

使用特权

评论回复
9
dong_abc| | 2014-1-1 09:46 | 只看该作者
今天 2014-01-01 这么好的日子,不要搞这些了,出去潇洒吧,偶撤了........再见!

使用特权

评论回复
10
xyz549040622|  楼主 | 2014-1-1 10:03 | 只看该作者
dong_abc 发表于 2014-1-1 09:46
今天 2014-01-01 这么好的日子,不要搞这些了,出去潇洒吧,偶撤了........再见! ...

你有姑娘么。。。还出去潇洒。。。我正在联系姑娘,丑一点也没事:dizzy:

使用特权

评论回复
11
-|continue;|-| | 2014-1-1 10:15 | 只看该作者
在.H文件中定义结构体原型,在.C中定义一个结构体变量,再在.H中把它声明为外部变量,So easy!

使用特权

评论回复
12
rocdove| | 2014-1-1 11:15 | 只看该作者
上面都说了怎么用了,我建议你少用全局变量,

使用特权

评论回复
13
diweo| | 2014-1-1 14:39 | 只看该作者
用函数返回呀。如果结构体比较大就返回指针。
函数声明和结构定义都放在.h里面,别的文件再include这个.h文件

使用特权

评论回复
14
电子空对穴| | 2014-1-1 17:32 | 只看该作者
太复杂,不懂啊

使用特权

评论回复
15
MJM_WSY| | 2014-1-1 18:31 | 只看该作者
声明在.H文件中原型。加extern 声明变量,在.C中用

使用特权

评论回复
16
通宵敲代码| | 2014-1-1 22:10 | 只看该作者
再*.h中声明一下,定义的地方用extern注明,
用的时候#include进来就行了吧。

使用特权

评论回复
17
it_yrj| | 2014-1-1 23:51 | 只看该作者
顶起

使用特权

评论回复
18
ayb_ice| | 2014-1-2 08:12 | 只看该作者
这种情况明显直接在C文件中定义最好

使用特权

评论回复
19
落叶行健ywm| | 2014-1-3 11:56 | 只看该作者
楼上基本都是正解!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

2810

主题

19297

帖子

104

粉丝