本帖最后由 251958563 于 2015-5-9 19:05 编辑
由于自己刚注册,实在没有悬赏的分给大家,:(
今天在编译的时候,老是出错,提示C2450:. * + - & ! ~ ++ -- ->[::IDENT CONSTANT STRING ziseof_alignof_......... ]
结构体数组初始化,好像没错啊,怎么老是编译不通过呢?
下面是我截取工程文件中的一部分,放在新建的一个工程的main.c里面的。
求大神指点迷津。
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#include <stdio.h>
#define OS_COUNTER_CNT 2
#define GEN_COUNTER_HEAD OS_COUNTER counter_list[OS_COUNTER_CNT]
#define GEN_COUNTER(_id,_maxallowedvalue,_ticksperbase,_mincycle,_next_ref) \
{ \
.id=_id, \
.alarm_base.maxallowedvalue = _maxallowedvalue, \
.alarm_base.tickperbase = _ticksperbase, \
.alarm_base.mincycle = _mincycle, \
.next=_next_ref \
}
typedef struct AlarmBase{
unsigned int maxallowedvalue;
unsigned int tickperbase;
unsigned int mincycle;
}ALARMBASE;
typedef struct os_counter{
unsigned int val;
unsigned int id;
ALARMBASE alarm_base;
struct os_counter *next;
}OS_COUNTER;
GEN_COUNTER_HEAD={
GEN_COUNTER(0,20,1,2,&counter_list[1]),
GEN_COUNTER(1,25,3,4,&counter_list[0])
};
void main(void) {
/* put your own code here */
EnableInterrupts;
for(;;) {
_FEED_COP(); /* feeds the dog */
} /* loop forever */
/* please make sure that you never leave main */
}
//***************************************************************//
问题找出来了,是HCS12编译器只支持C90,不支持C99,“指定初始化(Designated Initializer)”是C99引入的
|