首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于函数声明的有关问题

2012-04-25 
关于函数声明的问题在看一些头文件的函数声明时,总发现有的函数声明结尾加一个宏,比如emacs源文件的lisp.h

关于函数声明的问题
在看一些头文件的函数声明时,总发现有的函数声明结尾加一个宏,
比如emacs源文件的lisp.h头文件中有这么一个函数声明:

C/C++ code
extern void die P_((const char *, const char *, int)) NO_RETURN;

想不通NO_RETURN有什么用,也没找到它的宏定义。

还有,在gcc的stdio.h的头文件中,也有类似的在函数声明结尾加上"_NOTHROW"这个宏,同样不明白。

请高手指点一下,非常感谢。

[解决办法]
_NOTHROW一般定义成 throw ()
表示这个函数保证不抛出异常

另外楼主可以看看specstring.h这个头文件,里面有很多关于修饰参数,返回值的信息
[解决办法]
extern void die P_((const char *, const char *, int)) NO_RETURN;
GCC 下 NO_RETURN 应该是
__attribute__((noreturn))

指示编译器,这个函数不会返回,便于编译器优化代码。

热点排行