2

作为一个新手,像我一样,很难在头文件(例如 stdio.h)中搜索 getchar() 之类的函数。不知何故,我在某个地方找到了一些信息,在查看头文件以“了解事情是如何工作的”时,我不应该害怕这些信息。(C++ Primer Plus,斯蒂芬·普拉塔)

至少可以说,我对头文件非常缺乏经验,一般来说,programmig 也是如此。

在我试图找到 getchar() 的过程中,我发现 stdio.h 只是分支到越来越多的标头,并且定位 getchar() 变得越来越复杂和耗时,而我从未找到它。很明显,我做错了,我的意图只是为我正在使用的函数找到一些源代码。

因此,我的问题是:我在哪里可以找到源代码来真正“理解”标准函数“真正”在做什么?

4

5 回答 5

3

如果您正在寻找变量顺序的声明或其他使用说明,只需使用在线参考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++ 的那个。)

于 2012-11-12T19:38:59.623 回答
2

你不应该搜索头文件,你应该使用手册页MSDN帮助。

于 2012-11-12T19:34:20.617 回答
1

C 标准不要求标准头文件(如stdio.h)物理存在。它们可以只是内置的。

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

于 2012-11-12T19:34:39.553 回答
0

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

您不必在头文件中查找函数声明。尝试使用谷歌输入“男人”

干杯

于 2012-11-12T19:37:59.133 回答
0

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

于 2012-11-12T19:38:34.083 回答