2 tfboy12121560 tfboy12121560 于 2016.04.10 00:33 提问

c结构体全局变量的使用?

我在一个函数里面这样写,这些是全局变量;我应该怎么样去把这些当道一个结构体里面调用?
void fun(){
a=1;
b=2;
c=22;
d=524;
}

6个回答

zhaoxin19890523
zhaoxin19890523   2016.04.14 22:33
已采纳

typedef struct {
int a;
int b;
int c;
int d;
}my_st;

my_st st_var;

void fun()
{
st_var.a = 1;
st_var.b = 2;
st_var.c = 22;
st_var.d = 524;
}

CSDNXIAOS
CSDNXIAOS   2016.04.10 00:42

1)在A中定义的函数,如何在B中调用?
如果有头文件,在头文件中声明,在B文件中#include头文件就可以了。
如果是在.c文件中声明的,在B中加extent声明:extern void timer_hw_init(void);
2)在A中定义的结构体及变量,如何在B中调用?
1> 对于全局结构体定义,首先在Globals.h头文件中构造结构体,用......
答案就在这里:c中全局变量,全局结构体使用
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

devmiao
devmiao   Ds   Rxr 2016.04.10 00:43

struct A
{
int a=1;
int b=2;
int c=22;
int d=524;
};

tfboy12121560
tfboy12121560 int 我定义过了直接 a=1这样写下去可以吗?
2 年多之前 回复
bi_jian
bi_jian   2016.04.10 11:21

楼主应该补充一下结构体相关知识了。上网查查,很多的。自己查学的更快。

tfboy12121560
tfboy12121560 结构体我懂啊 但是结构体赋值全局变量我不太懂
2 年多之前 回复
qq423399099
qq423399099   Ds   Rxr 2016.04.10 11:25

感觉不是很懂楼主的意思,楼主是想在结构体里改变这些全局变量的值?
那直接把fun弄成结构体的成员函数或者构造函数就行了
如果只是想在结构体里调用的话,直接使用就好了,反正是全局的变量啊,又不存在作用域问题

qq_26714389
qq_26714389 C++是不能了
2 年多之前 回复
tfboy12121560
tfboy12121560 全局变量的值就是这样,我想放到结构体里面
2 年多之前 回复
qq_26714389
qq_26714389   2016.04.11 11:18

你们都不懂楼主想干嘛,楼主这是要把变量用结构体管理起来,你直接生成一个C++的结构体然后用类的初始化列表进行赋值就行,因为结构体不是实体,只有实例化才能存放变量

tfboy12121560
tfboy12121560 太懂打错
2 年多之前 回复
tfboy12121560
tfboy12121560 太懂打错
2 年多之前 回复
tfboy12121560
tfboy12121560 太懂打错
2 年多之前 回复
tfboy12121560
tfboy12121560 太懂打错
2 年多之前 回复
tfboy12121560
tfboy12121560 太懂打错
2 年多之前 回复
tfboy12121560
tfboy12121560 太懂打错
2 年多之前 回复
tfboy12121560
tfboy12121560 太懂打错
2 年多之前 回复
tfboy12121560
tfboy12121560 可以举个例子吗?我不爱动怎么写 按一楼的方法直接放到里面可以吗?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
c中全局变量,全局结构体使用
1)在A中定义的函数,如何在B中调用? 如果有头文件,在头文件中声明,在B文件中#include头文件就可以了。 如果是在.c文件中声明的,在B中加extent声明:extern void timer_hw_init(void); 2)在A中定义的结构体及变量,如何在B中调用? 1> 对于全局结构体定义,首先在Globals.h头文件中构造结构体,用typedef方式,如: typede
C语言——结构体、局部变量和全局变量、枚举
局部变量与全局变量    按照作用域不同将变量分为 局部变量和全局变量    局部变量:定义在函数内部变量    作用域:从定义的那一行开始直到所在代码结束    生命周期:从定义的那一行开始只直到其所在代码结束    注意点:内部代码块中定义与外部代码块中的同名变量,那么内部代码中变量会覆盖外部代码块中定义的变量    局部变量只有定义没有声明      全局变量:定在函数外部变
keil 中——C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法
详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法!            以前写单片机程序时总是把所用函数和变量都写在一个c文件里,后来遇到大点的项目,程序动则几千行,这种方式无疑会带来N多麻烦,相信大家都有所体验吧!     后来学会了在keil里进行模块化编程,即只把功能相同或相近的函数写在同一个c文件,这样以来一个项目往往由很多个c文件组成,但又带来
全局结构体变量
1.在.h头文件中定义struct:     struct   JCB   {   //   定义作业控制块JCB         char   name[10]; //作业名     char   *state;   //作业状态     int   time; //估计运行时间     int   Wtime; //等待时间     int   arrive; //到达时间     int  
定义结构体全局变量的方法
一,在一个单文档项目里,首先在stdafx.h头文件中定义结构体类型.然后在类外定义此结构体变量.然后在其它使用此结构体变量的地方用extern声明此全局变量 二. 在一个单文档项目里,首先在stdafx.h头文件中定义结构体类型. 然后新建一个a.h头文件,用来定义所有的全局结构体变量.再定义另外一个b.h头文件,用extern声明所有的全局变量. 然后在定义全局变量的文件中,
关于静态库中使用全局变量可能导致的问题
同事找我看一个问题,一个访问全局变量不符合预期的问题。 因为新工程中静态库动态库非常多,非常不利于分析问题。 再因为并不是一个业务逻辑问题,而是一个语言层面的问题,所以我单独抽象出产生问题的环境,简化问题,更容易分析。 刚开始,是一个方案,五个工程,能够复现问题。 然后继续缩减三个工程,依然能够复现问题。 三个工程分别为静态库A,DLL B,EXE C。三者的依赖关系为:B依赖A, C依
如何在其他文件中调用结构体变量
写个头文件 c.h 声明 一个结构体类型struct STU{ int x; int y;};定义结构体变量s的文件b.c#include "c.h"struct STU s; /* 不加extern ,默认认为extern */a.c 调用b.c里定义的全局变量s#include #include "c.h" /* struct STU这个类型的定义(或者说声明)在这个头文件里 */exte
C语言全局变量那些事儿(深入C中最隐秘的地带)
【虽然自认为对C的角角落落都有所了解,但直到看到这篇文章,才知道C中的一些隐秘的坑,是自己之前不知道的。 关于全局变量的链接问题,之前在我博客的某文章中有介绍过,一般对C有些了解的程序员都知道这个问题,但本文最后所提到的使用动态链接库所出现的问题,着实让我震惊。 (心急的朋友,可跳过前面的,直接读“第4个例子”) 所以,以后大家在使用全局变量的时候要留点心,良好的命名规范,在一定程度上可以避
Qt 设置全局变量
1.在所有类的外部声明全局变量: // Init.h int i ; 2.在类TestA中给全局变量赋值: // test.h extern int i; class TestA{ i = 10; } 3.在类TestB中读取全局变量的值: // testb.h extern int i; class TestB{ qDebug() i ------->"
关于C/C++中全局变量的初始化问题的深入思考
前言: 前日,在一次C++课程上,刘老师在举例说明构造函数和析构函数的功能时,提到了全局变量初始化时的构造函数的行为。构造函数在main函数之前初始化全局变量。当然在C++下我是深信不疑的。但随后老师声称C语言下的全局变量也是如此,因为C没有构造和析构函数,所以我们无法看到这一过程,在C++下可以在构造和析构函数中向屏幕打印信息,进而可以观察全局变量的初始化和生存期。 这个观点无疑使我心头一震