系统编程:从GCC扩展到资源管理的全面指南
1. GCC扩展相关要点
1.1 省略号使用规范
在编程中,省略号前后需有空格,否则编译器可能产生混淆,尤其是在处理整数范围时。例如,应使用 case 4 ... 8: ,而不是 case 4...8: 。
1.2 空指针和函数指针运算
在GCC中,允许对 void 类型指针和函数指针进行加减运算。但通常ISO C不允许此类运算,因为 “void” 的大小概念不明确,其依赖于指针实际指向的内容。为便于此类运算,GCC将引用对象的大小视为1字节。示例代码如下:
a++; /* a is a void pointer */
使用 -Wpointer-arith 选项会使GCC在使用这些扩展时生成警告。
1.3 美化 __attribute__ 语法
__attribute__ 语法不够美观,可使用预处理器宏进行美化,同时提高GCC扩展的可移植性。以下是示例代码:
#if __GNUC__ >= 3
# undef inline
# define inline inline __attribute__ ((always_inline))
# define __noinline
超级会员免费看
订阅专栏 解锁全文
2877

被折叠的 条评论
为什么被折叠?



