GCC 扩展与系统编程知识汇总
在系统编程领域,GCC 扩展和相关的编程知识起着至关重要的作用。下面将详细介绍一些关键的技术点和操作方法。
1. GCC 扩展特性
1.1 范围 case 语句
在 GCC 中,支持范围 case 语句,这在处理连续值的情况时非常有用。例如:
switch (val) {
case 1 ... 10:
/* ... */
break;
case 11 ... 20:
/* ... */
break;
default:
/* ... */
}
这种语法也适用于 ASCII 字符范围,如 case 'A' ... 'Z': 。需要注意的是,省略号前后必须有空格,否则编译器可能会产生混淆,特别是在处理整数范围时。正确的写法是 case 4 ... 8: ,而不是 case 4...8: 。
1.2 Void 和函数指针算术
在 GCC 中,允许对 void 类型的指针和函数指针进行加法和减法运算。通常,ISO C 不允许对这类指针进行算术运算,因为 “void” 的大小是一个无意义的概念,它取决于指针实际指向的内容。为了实现这种算术运算,GCC 将引用对象的大小视为一个字节。例如:
a++; /* a is a voi
超级会员免费看
订阅专栏 解锁全文
45

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



