Mike Parker:
除非C11
改变了嵌套初化规则,应可编译.可显式嵌套:
stb_easy_font_color c = { {255,255,255,255} };
如未提交相应问题,请报告.
"标签
"是跟在构或联
关键字后名:
struct Foo {};
这里,Foo
是标签
.必须按struct Foo
声明构实例
.这样思考:声明整
时要加整
,对构
也是如此;"标签"
指定了结构的类型
,因此struct Foo x
.
而typedef
引入了别名:
typedef struct Bar {} Bar;
所以Bar
现在是struct Bar
的别名,且可按Bar x
声明实例.
你例是这样的:
typedef struct {} stb_easy_font_color;
未指定标签
,所以编译器必须生成一个.在此,是__tag21
,而stb_easy_font_color
是struct__tag21
的别名.
是的,如无别名
,错误消息
中用生成标签
没用.
是的,用嵌套成功了:
typedef struct
{
unsigned char c[4];
} stb_easy_font_color;
stb_easy_font_color c = { { 255,255,255,255 } };
//d文件
void main(){}
//命令
dmd stuff.c main.d
默认,按第一个为名字
.可用of
来改.