第一个问题:没有上下文,不好说。
第二个问题:属于函数指针+宏的问题??
声明va_start为一个函数指针??
1、va_start这个函数指针没有返回值: (void)(*.....)??
2、这个函数指针的所指函数调用了__va_start函数??
3、__va_start函数需要一个参数,由parmN替换这个参数??
4、__va_start有返回值,返回值放在ap指针所指的地方??
不用这个宏,对__va_start函数的调用方法就应该是:*(ap) = __va_start((parmN)??
用了这个宏,就可以这样调用__va_start函数:va_start(ap, parmN)??
看起来这样似乎更养眼一些??但实质上这绝对不是解决养眼的问题??操作系统里面需要这样写??为什么,一句两句解释......??
|