【发布时间】:2014-11-04 14:06:48
【问题描述】:
我想知道的是编译器和程序是如何工作的。
例如,在“Hello, world!”中举个例子,比如说 hello.c,大家都知道它是这样的: (使用 GNU gcc)
$ gcc -o hello hello.c
$ ./hello
世界你好!
我刚收到一个问题,printf 这个最简单、最熟悉的函数之一是如何定义或使用的。
为了自己找答案,我找到了stdio.h中包含的整个头文件,包含在包含的一个中,包含在包含的一个中。 stdio.h 中包含近 80 个头文件。我会查找每个文件是否包含“printf”这个词。头文件有3个。
stdio.h(本身)
位/stdio2.h
位/stdio-ldbl.h
我不完全了解预处理器语法,但我很确定这些文件中的文本不足以定义printf 函数。例如,在 stdio.h 中,printf 大致是这样引用的:
...
namespace std{
...
extern int printf (const char *__restrict__format, ...);
...
}
...
我知道它说的是语法和声明类型,但我认为它不是printf 的定义或构建。
所以我认为内心深处有一些东西可以回答我的问题,我希望你们中的一些人有一个。
【问题讨论】:
-
我在这里看不到一个问题。你问定义在哪里?它在图书馆中,您可能有也可能没有来源;你可以看到它here。
-
如果您正在寻找
printf的源代码,您的问题与此问题重复:stackoverflow.com/questions/4867229/… 否则我不确定我是否完全理解您在寻找什么。 printf 的“原则”(原则?)?你这是什么意思?
标签: c gcc c-preprocessor