将结构ext2_file_operations的元素llseek初始化为generic_file_llseek,元素read
初始化genenric_file_read,依次类推。我觉得这是GNU C
扩展中最好的特性之一,当结构的定义变化以至元素的偏移改变时,这种初始化方法仍然保证已知元素的正确性。对于未出现在初始化中的元素,其初值为 0。
case范围
------------------------------------------
GNU C 允许在一个 case 标号中指定一个连续范围的值,例如:
case '0' ... '9': c -= '0'; break;
case 'a' ... 'f': c -= 'a'-10; break;
case 'A' ... 'F': c -= 'A'-10; break;
case '0' ... '9':
相当于
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
声明的特殊属性
------------------------------------------
GNU C允许声明函数、变量和类型的特殊属性,以便手工的代码优化和更仔细的代码检查。要指定一个声明的属性,在声明后写__attribute__
(( ATTRIBUTE )),其中ATTRIBUTE是属性说明,多个属性以逗号分隔。GNU C支持十几个属性,这里介绍最常用的: