LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1243|回复: 10

怎么找不到stdarg.h这个 文件呢?

[复制链接]
发表于 2003-7-31 20:21:15 | 显示全部楼层 |阅读模式
看资料说是ANSI C的一部分,可是在我的机器时候却找不到。
发表于 2003-7-31 20:55:00 | 显示全部楼层
使用find命令找看
 楼主| 发表于 2003-7-31 23:01:44 | 显示全部楼层
我在/usr/include下面查过了,没有。
你们的系统上面有吗?
发表于 2003-7-31 23:13:26 | 显示全部楼层
用来设置可变参数的东东。一般用不上。
http://www.acm.uiuc.edu/webmonkeys/book/c_guide/2.10.html
 楼主| 发表于 2003-8-1 01:01:36 | 显示全部楼层
对呀,我就是在看这个东西
奇怪,在/usr/include下面怎么也找不到,可是却可以编译,而且如果少了这个还编译不成功。
怪了。
发表于 2003-8-1 05:13:40 | 显示全部楼层
因为gcc要支持很多种平台,所以把stdarg.h直接实现在编译器内了,没有提供库,可以直接使用。
比如对于精简指令集的CPU,一般寄存器都比较多(几十个通用寄存器),一般参数传递都用寄存器实现,这时候我们一般看到的用栈传递参数的stdarg.h实现就不能用了,gcc直接把stdarg.h放到编译器里就可以很好的(很容易的)支持各种平台。
关于使用,你只要照标准使用就行了。
发表于 2003-8-1 05:16:00 | 显示全部楼层
In my Debian Woody:
/usr/lib/gcc-lib/i386-linux/2.95.4/include/stdarg.h
 楼主| 发表于 2003-8-1 11:18:17 | 显示全部楼层
原来/usr/lib/gcc-libi386-linux/3.3/include下面还有头文件,我的也在这里。
但是我看到这里也有stdio.h那么我们用的stdio.h究竟是这里的还是/usr/include下面的哪个?
发表于 2003-8-1 11:35:49 | 显示全部楼层
看看/usr/include下面的那个有没有直接或间接引用/usr/lib/gcc-libi386-linux/3.3/include下面的。
 楼主| 发表于 2003-8-1 11:49:24 | 显示全部楼层
在/usr/lib/gcc-lib/i386-linux/3.3/include/stdio.h中有这样一段话:
/* It has been auto-edited by fixincludes from:

        "/usr/include/stdio.h"

    This had to be done to correct non-standard usages in the
    original, manufacturer supplied header file.  */
这个没怎么看懂。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表