部分常用的gcc扩展。
__pure函数是指除了作一些运算以外(例如:strlen(...))没有其他作用,函数的返回值只影响调用函数的auto变量和按值传递的参数。
__const函数是更严格的__pure函数,它的返回值只影向调用函数的按值传递的参数。
__noreturn函数是指该函数一定会调用类似于exit(int)的函数终止进程。必须谨慎使用该扩展。
__deprecated函数是指该函数已经废弃或应谨慎使用。在调用__deprecate前缀的函数时,编译器会给出警告。
__must_check函数是指调用函数一定要处理该函数的返回值,否则编译器会给出警告。
__used函数是告诉编译器必须编译该函数,即使在可见的代码范围内从没使用过此函数。
其余的几个属性都很容易理解了,不赘述了。
main.cpp只是用于测试。
这是实验代码,可能有许多错误和不合理的地方。
编译:
g++ -g -W -Wall -Wextra -o mytest main.cpp
执行:
./mytest
代码参考了:gcc文档,<<Linux System Programming>>。
gcc_extension.h:
// 2010年 8月 8日 星期日 09时44分25秒 CST
// author:李小丹(Li Shao Dan) 字 殊恒
// K.I.S.S
// S.P.O.T
#ifndef GCC_EXTENSTION_H
#define GCC_EXTENSTION_H
#undef __in