您可以放置一个链接到比较矩阵或主要编译器可用的扩展列表。如果这些都不可用,您可以在您最喜欢的编译器中编写您使用或喜欢的扩展列表。
问问题
241 次
5 回答
5
于 2009-12-02T00:11:53.117 回答
4
到目前为止的 C++/ISO-C 风格注释://
于 2009-12-02T00:19:07.703 回答
2
嗯,这取决于您说“ANSI C”时是指 C89 还是 C99。由于大多数主流实现还不完全符合 C99,我将假设 C89。
在这种情况下,我会说(不包括特定的 API,如 POSIX 或 BSD 套接字):
long long
必须是最常见的扩展;- 其次是允许访问
union
最后写入以外的成员; inline
可能在上面;snprintf
在很多地方都可以使用;- 允许在函数指针和 void 指针之间进行强制转换很普遍;
alloca
编辑:啊,是的,我怎么能忘记无处不在的//
风格评论。
于 2009-12-02T00:07:58.320 回答
1
在嵌入式 C 的臭名昭著的编译器之一中,您可以独立于处理器的偏好为结构类型指定小端或大端。编写设备驱动程序非常方便,如果您记得不要通过int*
忘记字节序的(比如说)访问其中一个字段。
你对特征矩阵是认真的吗?你认为 SO 成员没有更好的事情可做吗?
于 2009-12-02T00:09:14.247 回答
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;
于 2009-12-02T00:13:01.030 回答