当我查看C(或C ++)的头文件文件时 例如 stdio.h中 有一些功能的定义 例如
_CRTIMP FILE* __cdecl __MINGW_NOTHROW fopen (const char*, const char*);
_CRTIMP FILE* __cdecl __MINGW_NOTHROW freopen (const char*, const char*, FILE*);
_CRTIMP int __cdecl __MINGW_NOTHROW fflush (FILE*);
_CRTIMP int __cdecl __MINGW_NOTHROW fclose (FILE*);
/* MS puts remove & rename (but not wide versions) in io.h also */
_CRTIMP int __cdecl __MINGW_NOTHROW remove (const char*);
_CRTIMP int __cdecl __MINGW_NOTHROW rename (const char*, const char*);
_CRTIMP FILE* __cdecl __MINGW_NOTHROW tmpfile (void);
_CRTIMP char* __cdecl __MINGW_NOTHROW tmpnam (char*);
你能告诉我吗?
那些体的功能在哪里.....
答案 0 :(得分:3)
通常情况下,正文位于同名文件中,但以.c
或.cpp
结尾。
有时您没有源代码,因此请查找.o
,其中包含库的目标代码,即编译库。然后,头文件是一种API描述。
在stdio.h
等特殊情况下,这些文件是标准库的一部分,这些文件的位置是特定于实现的。事实上,这些文件的存在也是特定于实现的 - 我相信编译器可能会选择提供这些信息,但是它很乐意这样做。
答案 1 :(得分:3)
正常情况下,正如@Daren Thomas所说,你将拥有与黑客(.h文件)相匹配的.c文件。但是,关于标准库,这些c文件经过预编译并放在一个大文件中(例如,libc.so),可以在Windows的编译器的lib文件夹中找到,也可以在/ usr / lib文件夹中找到在Unix / Linus OS中。
对于g ++,libc库用作标准库。您可以从这里下载软件包:
http://ftp.gnu.org/gnu/glibc/glibc-2.9.tar.gz
...并浏览所有功能的源代码。