在网上搜了一下,讲解的非常详细的文章有很多。于是我打算至少看一下那些涉及到的宏定义。结果我在这第一步就造与挫折:我在ubuntu linux上居然找不到
于是我在/usr/include/目录下使用grep命令从va_list查到_G_va_list,再到__gnuc_va_list,然后又追踪到__IO_va_list,发现_G_va_list、__IO_va_list和__gnuc_va_list是转着圈定义的-_-! 真是佩服gnu的开发者,非要在这么复杂的预处理定义里绕来绕去。
但是上溯到_G_Config.h就再也找不到源头了。因为它调用了
兴致勃勃打开stdarg.h一看,终于彻底就没电了。因为在显眼处发现一行:
typedef __builtin_va_list __gnuc_va_list;
看到builtin,油然而生一种不祥的预感。看来预定义的指令直接实现在gcc里边了。grep的结果如我所料,代码看不到咯,本次解析到此结束。我企图尝试可变参数函数的兴趣已经全部被消磨掉,估计最近几年是不会去碰它了。
yangshunxu1247 于 2008-10-10 16:36:57发表:
同情。。。