作为一个像我一样的新手,在搜索stdio.h之类的头文件时遇到很大困难,因为像getchar()这样的函数。不知怎的,我在某个地方找到了一些信息,在查看头文件时我不应该害怕,看看事情是如何运作的。" (C ++ Primer Plus,Stephen Prata)
我对头文件的经验非常缺乏,至少可以说是程序设计。
在我尝试查找getchar()时,我发现stdio.h只是分支到越来越多的头文件,定位getchar()变得越来越复杂和耗时,我从来没有找到它。显然,我认为这一切都是错的,我的目的只是为我正在使用的函数找到一些源代码。
因此我的问题是:我在哪里可以找到真正理解的源代码'标准功能是什么'真的'在做什么?
答案 0 :(得分:3)
如果您正在寻找变量订单或其他使用说明的声明,只需使用online reference或man
。
如果您正在寻找实际代码,请查看C标准库的实现,例如GNU的libc。
值得注意的是,实现并不简单,它们的依赖关系图也广泛存在。它们也倾向于与机器相互作用的程度低于我们大多数人习惯的水平。
考虑libc对getchar的实现:
int
getchar ()
{
int result;
_IO_acquire_lock (_IO_stdin);
result = _IO_getc_unlocked (_IO_stdin);
_IO_release_lock (_IO_stdin);
return result;
}
可能不是你所期待的:)。
(注意:不知道C的引用有多好 - 它只是我通常用于C ++的引用。)
答案 1 :(得分:2)
答案 2 :(得分:1)
C标准并未强制要求标准头文件(如stdio.h
)实际存在。它们可以只是内置的。
如果您不知道函数的参数或返回值,请阅读C标准或手册页。
答案 3 :(得分:0)
在C头文件中使用(包括)预先声明函数。预先声明的函数可以是您自己的函数,其中的实现位于另一个(或相同的).c文件或已编译的库中。 stdio.h是最后一个例子。
您不必查看头文件以查找函数声明。尝试使用谷歌输入'man'
欢呼声
答案 4 :(得分:0)
这有点像修改可执行文件explorer.exe以在Windows中执行简单操作。这些是基本文件,保留它们并直接在您的文件中编写您的功能。此外,如果搜索和更改文件是一个问题,请确保您使用的是IDE而不是通过记事本或其他类似的程序手动执行操作。