跪求大神出现,编译出错C2450

2019-07-15 17:48发布

本帖最后由 251958563 于 2015-5-9 19:04 编辑

由于自己刚注册,实在没有悬赏的分给大家,

今天在编译的时候,老是出错,提示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引入的






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
suyong_yq
1楼-- · 2019-07-15 20:15
C90是不支持这样的用法的。

{                                                                           
.id=_id,                                                                     
.alarm_base.maxallowedvalue = _maxallowedvalue,                              
.alarm_base.tickperbase = _ticksperbase,                                                
.alarm_base.mincycle = _mincycle,                                                         
.next=_next_ref                                                              
}

一周热门 更多>