您可以添加指向比较矩阵的链接或主编译器可用的扩展列表。如果这些都不可用,您可以在您喜欢的编译器中编写您使用或喜欢的扩展名列表。
答案 0 :(得分:5)
答案 1 :(得分:4)
C ++ / ISO-C样式评论://
答案 2 :(得分:2)
嗯,这取决于你说“ANSI C”时你的意思是C89还是C99。由于大多数主流实现还不完全符合C99标准,我将假设C89。
在这种情况下,我会说(并且不包括POSIX或BSD套接字等特定API):
long long
必须是最常见的扩展名; union
成员; inline
可能就在那里; snprintf
可在很多地方使用; alloca
编辑:啊,是的,我怎么能忘记无处不在的//
风格评论。
答案 3 :(得分:1)
在其中一个臭名昭着的嵌入式C编译器中,您可以为结构类型指定小端或大端,而不依赖于处理器的首选项。编写设备驱动程序非常方便,如果您记得不通过(例如)忘记字节序的int*
来访问其中一个字段。
您是否认真对待功能矩阵?你认为SO成员没有更好的事情可做吗?
答案 4 :(得分:1)
许多编译器允许匿名联合内部的匿名结构,这对某些事情很有用,例如:
struct vector3
{
union
{
struct
{
float x, y, z;
};
float v[3];
};
};
// members can now be accessed by name or by index:
vector3 v;
v.x = 1.0f; v.y = 2.0f; v.z = 3.0f;
v.v[0] = v.v[1] = v.v[2] = 0.0f;