注册 登录
编程论坛 C++教室

关于结构体的理解

king123123 发布于 2013-09-12 23:11, 634 次点击
有一段代码不是很理解 期望高手不吝赐教

typedef struct ALR_STRUCT {
    unsigned short usErrorMonitoringEnable;
    unsigned short usErrorConditionEnable;
    unsigned short usOccurred;
    unsigned short ausCondition[MAX_NUM_ALARM];
    long           ausDelayTime[MAX_NUM_ALARM];
    unsigned short ausIsActive[MAX_NUM_ALARM];
    unsigned short ausToSendCome[MAX_NUM_ALARM];
    unsigned short ausToSendGone[MAX_NUM_ALARM];
    unsigned short ausDelayRunCome[MAX_NUM_ALARM];
    unsigned short ausDelayRunGone[MAX_NUM_ALARM];
    long           ausDelayEndCome[MAX_NUM_ALARM];
    long           ausDelayEndGone[MAX_NUM_ALARM];
    unsigned short ausWasSentCome[MAX_NUM_ALARM];
    unsigned short ausWasSentGone[MAX_NUM_ALARM];
} ALR_STRUCT;

typedef struct ALARM_STRUCT {
    unsigned short usAlarmAcknowledgeFlag;
    ALR_STRUCT     rFault;
} ALARM_STRUCT;
static ALARM_STRUCT     rAlr = {0};
上面是相关的申明部分, 然后rAlr.rFault.ausIsActive[CMN_FAULT_VACC_REQUEST_DATA_INCONSISTEND] 这个是什么意思呢 这里CMN_FAULT_VACC_REQUEST_DATA_INCONSISTEND 是一个常数 比如30 这样。 还有上面的申明也不是很明白 谢谢解答哈
8 回复
#2
peach54602013-09-13 06:27
rAlr.rFault.ausIsActive[CMN_FAULT_VACC_REQUEST_DATA_INCONSISTEND]
区结构体的某一个值啊...

这种概念性的东西,不懂去翻书...
#3
liufashuai2013-09-13 14:01
看结构体定义,不管多复杂的结构体,一个一个找下去
#4
yuccn2013-09-13 19:56
rAlr的rFault的ausIsActive的第 CMN_FAULT_VACC_REQUEST_DATA_INCONSISTEND 个
#5
qunxingw2013-09-13 22:15
结构体里面的一切体现了该结构的所有性质,想要哪项可用.调用
#6
pauljames2013-09-14 07:23
嵌套结构体,就像大盒子里面有小盒子,仅次而已
#7
king1231232013-09-16 02:48
回复 4楼 yuccn
static ALARM_STRUCT     rAlr = {0};
这个意思是说rALr的初始值为空还是什么意思呢?

还有最后中括号的值不等于开始中声明的值需要再次声明吗?
谢谢解答
#8
blueskiner2013-09-16 07:43
对rAlr这个静态变量进行第一次初始化的清零动作。rAlr只能在当前的.c文件中使用。相当于该文件范围的全局变量
#9
IT男year2013-09-16 21:06
结构体中有结构体,这好比类的继承。rAlr.rFault.ausIsActive[CMN_FAULT_VACC_REQUEST_DATA_INCONSISTEND]是引用上个结构体的数组元素罢了!再不懂就去看书吧,孩子!
1