1#include
2void main(){
3 typedef struct {4 int int_field; 5 char char_field;
6 } my_struct;
7 my_struct my_s;
8 my_s.int_field=3; //结构运算符访问结构成员
9 my_struct *s;
10 s=(my_struct *)malloc (sizeof(my_struct));
11 s->int_field=4;
12 s->char_field='a';
13 (*s).int_field=6;
14 }
访问结构体成员的运算符有两种,一种是“.”即结构运算符,另一种是“->”即结构指针运算符。
结构运算符是通过结构变量名访问结构体成员的(例如例子的第8行),而结构指针运算符是通过指向结构的指针访问结构成员的(例如第11及12行)。
还可以用指针和结构运算符来访问结构(如第13行),其中(*s)中的圆括号不可以省去
平时看简单例子看惯的缘故,本来以为很简单的知识。可是正到了项目上遇到了就有中把握不住的感觉,还是由于看的少的原因,所以不要只停留在理论的基础上。还是看项目源代码:
。。。。
。。。。
1. enum {
LIGHT_INDEX_BACKLIGHT = 0,
LIGHT_INDEX_KEYBOARD = 1,
LIGHT_INDEX_BUTTONS =