Chinaunix

标题: 问一个特弱的问题 [打印本页]

作者: allenspp    时间: 2005-03-08 12:39
标题: 问一个特弱的问题
static void timer __P((int));
这仅仅是一个函数声明么??它只是声明了timer这个函数??
__P是用来做什么呢??为什么不直接写成
static void timer (int);??
作者: albcamus    时间: 2005-03-08 13:42
标题: 问一个特弱的问题
__P好象是gcc扩展出来的异常处理。具体我不清楚,你看看<sys/cdefs.h>;中有它的定义。
作者: THEBEST    时间: 2005-03-08 16:11
标题: 问一个特弱的问题
编译器(预处理器)在某个头文件中判断,如果是一个 ANSI 编译器,将 __P (x) 定义为 x,如果是一个不支持“带原型函数声明”的编译器,将 __P (x) 定义为 () .所以,如果你的编译器不支持“带原型函数声明” :
int ftp_put __P(argv1,argv2);   将被替换为:   int ftp_put ();
比如一个函数 int f (int, int); 有些老编译器不支持这种声明,要写成 int f();
那个 __P 就是用来干这个活的。
记得这里的某位大侠曾经说过的话.这个问题问过好几次.
作者: albcamus    时间: 2005-03-08 16:29
标题: 问一个特弱的问题
多谢楼上。我匆匆看了手册,相关联的太多了,没整明白,谢了呵呵
作者: bleem1998    时间: 2005-03-08 16:37
标题: 问一个特弱的问题
长见识了




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2