[英]Which are the ANSI C language extensions disabled by the /Za option in Visual Studio?
[英]Which most common extensions are there (or used) to ANSI C?
您可以为主编译器提供比较矩阵或扩展列表的链接。 如果这些都不可用,您可以在您喜欢的编译器中编写您使用或喜欢的扩展名列表。
到目前为止C ++ / ISO-C风格的评论://
那么,这取决于你说“ANSI C”时你的意思是C89还是C99。 由于大多数主流实现还不完全符合C99,我将假设C89。
在这种情况下,我会说(并且不包括POSIX或BSD套接字等特定API):
long long
必须是最常见的延伸; union
成员; inline
可能在那里; snprintf
可以在很多地方使用; alloca
编辑:啊,是的,我怎么能忘记无处不在的//
风格评论。
在其中一个臭名昭着的嵌入式C编译器中,您可以为结构类型指定小端或大端,而不依赖于处理器的首选项。 编写设备驱动程序非常方便,如果你记得不通过(比如说)忘记字节序的int*
访问其中一个字段。
您是否认真对待功能矩阵? 你认为SO成员没有更好的事情要做吗?
许多编译器允许匿名联合内部的匿名结构,这对某些事情很有用,例如:
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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.