最近,我正在阅读一些源代码。我发现了一种以前从未见过的语法。也找不到任何线索。
#define v(t, s, name, ...) \
..
name.size = sizeof((__typeof__(name.buf[0])[]){0, __VA_ARGS__}) / \
sizeof(name.buf[0]) - 1;
让我将此宏修改为真实语句:
int a[20];
printf("%d",sizeof((__typeof__(a[0])[]){0,2,4,5})/sizeof(a[0]) - 1);
我想知道如何将语法称为(int[ ]){1,2,3....}
?
它称为复合文字。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句