Designated Initializers
在看Android的权限管理代码时候,看到一种初始化结构体的用法:
struct su_request { unsigned uid; char *command; }; static struct su_request su_to = { .uid = AID_ROOT, .command = DEFAULT_COMMAND, };
这个前面的“.”很重要,不过我记得以前用VC的时候,好像没有这种情况。网上一查才知道,原来这个叫:Designated Initializers,也翻译为:指派初始化
相关网站:http://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html
不过因为C99出的时间在VC6之前,所以老版的VC编辑器是不支持的,不过cygwin下面使用GCC命令可以支持指派初始化的写法,GCC里面已经支持C99了。