C语言结构体的问题
程序代码:
#define uchar unsigned char uchar p0_data[]={0,1}; uchar p1_data[]={0,1}; uchar p2_data[]={0,1}; uchar p3_data[]={0,1}; struct led_data { uchar P0_DATA; uchar* P1_DATA; uchar* P2_DATA; uchar* P3_DATA; }stled={&p0_data[0],&p1_data[0],&p2_data[0],&p3_data[0]};这样一个结构体定义和初始化编译器是不报错的。
我要是想先定义,再初始化:
程序代码:
#define uchar unsigned char uchar p0_data[]={0,1}; uchar p1_data[]={0,1}; uchar p2_data[]={0,1}; uchar p3_data[]={0,1}; struct led_data { uchar P0_DATA; uchar* P1_DATA; uchar* P2_DATA; uchar* P3_DATA; }stled; //stled={&p0_data[0],&p1_data[0],&p2_data[0],&p3_data[0]}; stled.P0_DATA = &p0_data[0]; stled.P1_DATA = &p1_data[0]; stled.P2_DATA = &p2_data[0]; stled.P3_DATA = &p3_data[0];这样的话,编译器会报错:1.C(17): error C129: missing ';' before '.'
这是为什么呢???
[ 本帖最后由 风雨彩虹88 于 2014-1-23 20:53 编辑 ]