首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言-结构体初始化的独特方式,该怎么解决

2012-04-13 
C语言--结构体初始化的独特方式今天开到下面这种,结构体初始化的方式,感觉结构看起来蛮工整,舒服……,但自己

C语言--结构体初始化的独特方式
今天开到下面这种,结构体初始化的方式,感觉结构看起来蛮工整,舒服……,但自己没见过这种格式的初始化,网上搜了下,也没找到什么,请高手指点指点……
typedef struct{ 
   
 unsigned char mode_flag; //xmodem 1;uart 0; 
   
 unsigned int receive_flag; 
   
 unsigned int receive_count; 
   
 unsigned char receive_buffer[BUFFER_SIZE]; 
   
 int (* send_byte)(unsigned char data); 
   
 void (* send_string)(unsigned int len, unsigned char *str); 
   
 int (* init)(void); 
   
 unsigned int (* baudrate)(unsigned int baudrate); 
   
 }UART_T; 
   
extern UART_T uart;

//初始化uart结构体,大家注意结构体的初始化方式 
UART_T uart={ 
     .mode_flag=0,    
      .receive_flag=0, 
     .receive_count=0, 
     .send_byte=uart_send_byte, 
     .send_string=uart_send_string, 
     .init=uart_init, 
     .baudrate=set_baudrate 
};

[解决办法]
应该就是c99标准吧
[解决办法]
最开始是gcc的扩展,然后就是标准了。

[解决办法]

探讨

引用:

gcc很早就加了, 然后C99加上了。 不过某家一直不鸟C99.


C99对C89改变不大啊

[解决办法]
据说这种形式(即成员变量前加点号,如.mode_flag)的赋值可以不用理成员变量位置。Linux内核驱动中很常用,其它地方少见。

热点排行