我在哪里可以找到源代码来“真正”理解标准函数在stdio.h中的作用?

时间:2012-11-12 19:31:50

标签: c header-files stdio

作为一个像我一样的新手,在搜索stdio.h之类的头文件时遇到很大困难,因为像getchar()这样的函数。不知怎的,我在某个地方找到了一些信息,在查看头文件时我不应该害怕,看看事情是如何运作的。" (C ++ Primer Plus,Stephen Prata)

我对头文件的经验非常缺乏,至少可以说是程序设计。

在我尝试查找getchar()时,我发现stdio.h只是分支到越来越多的头文件,定位getchar()变得越来越复杂和耗时,我从来没有找到它。显然,我认为这一切都是错的,我的目的只是为我正在使用的函数找到一些源代码。

因此我的问题是:我在哪里可以找到真正理解的源代码'标准功能是什么'真的'在做什么?

5 个答案:

答案 0 :(得分:3)

如果您正在寻找变量订单或其他使用说明的声明,只需使用online referenceman


如果您正在寻找实际代码,请查看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)

您不应搜索标题文件,应使用man pagesMSDN帮助。

答案 2 :(得分:1)

C标准并未强制要求标准头文件(如stdio.h)实际存在。它们可以只是内置的。

如果您不知道函数的参数或返回值,请阅读C标准或手册页。

答案 3 :(得分:0)

在C头文件中使用(包括)预先声明函数。预先声明的函数可以是您自己的函数,其中的实现位于另一个(或相同的).c文件或已编译的库中。 stdio.h是最后一个例子。

您不必查看头文件以查找函数声明。尝试使用谷歌输入'man'

欢呼声

答案 4 :(得分:0)

这有点像修改可执行文件explorer.exe以在Windows中执行简单操作。这些是基本文件,保留它们并直接在您的文件中编写您的功能。此外,如果搜索和更改文件是一个问题,请确保您使用的是IDE而不是通过记事本或其他类似的程序手动执行操作。