刚看到一些关于linux下C编程的一些风格,有些与ANSI C不同,记录下来,以作以后参考:
1、linux C中可以使用变长数组,甚至0长度数组,这点与ANSI C有很大的不同。ANSI C数组长度只能使用常数,即便是const修饰的常量也不能使用。当然在C++中可以使用常量及变长数组
2、linux C中的switch中的case可以使用范围表示,如case '0'...'3':就相当于ANSI C中的case '0':case '1':case '2':case '3':
3、可以声明函数、变量和类型的特殊属性,声明方法:_ _attribute_ _((属性)),其中属性可以是noreturn,format,section,aligned,packed
4、在宏定义中经常使用do while(0)