通过库实现获得预处理的C代码

时间:2012-09-24 21:33:07

标签: c c-preprocessor

我使用* nix / gcc。我是C的初学者,所以这可能是一个简单的问题。假设我有一个文件main.c,其中包含以下内容:

#include<stdio.h>

int main(int argc, char *argv[])
{
    printf("Hello World.\n");

    return 0;
}

现在我想要的是一个文件,其中包含预处理后的所有代码和所有库实现代码(用于检查目的)。现在,如果我跑

gcc -E main.c >> full.c

我确实得到了大量代码,但只有数据类型和函数原型。是否有可能以某种方式获得所有函数的实现,以便我可以在一个地方看到整个代码。

感谢。

1 个答案:

答案 0 :(得分:3)

C预处理器只进行文本操作。在这种情况下,它将做的是生成一个输出文件,其中包含包含文件stdio.h的内容以及主程序的几行。

它不包含stdio.h函数实现,因为该源是在其他一些文件中没有以gcc的源代码格式提供。

因此,如果您想要实现,您需要找到gcc标准C库源代码,我希望它可以在网络上的某个地方。

但是,如果您想了解标准C库,您应该从标准C库上的Plaughers书籍开始,或类似的东西,提供实现以及注释和注释,了解已完成的工作和原因。