什么#include 真的在c程序中做
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么#include 真的在c程序中做相关的知识,希望对你有一定的参考价值。
我是c编程的新手,我编写了一些简单的程序“Hello world”风格。
在所有这些程序中,我把#include<stdio.h>
放在顶部,但我不确定这究竟是什么意思。我用谷歌搜索它,我发现stdio.h是一个具有预处理器命令的文件,但什么是预处理器?我想当我编写代码时,我编译它并且我的代码转换为“计算机”可以读取的形式然后我可以运行它。有人可以向我解释这个命令的用法是什么吗?
它查找stdio.h
文件并有效地将其复制粘贴到此#include
语句的位置。这个文件包含所谓的printf()
,scanf()
等函数的函数原型,以便编译器知道它们的参数和返回值。
最简单的解释可能是您的程序调用或使用许多函数,其代码不是程序本身的一部分。对于例如如果你在代码中写“printf”来打印某些内容,编译器就不知道如何处理该调用。
stdio.h是该printf的信息所在的位置。
更新:
而是printf函数的原型(名称,返回类型和参数)驻留在stdio.h中。这是编译阶段所需的全部内容。 printf的实际代码包含在编译后的链接阶段。
include语句基本上在实际编译之前插入所有函数原型。因此名称预处理器。
更新2:
由于问题集中在include语句(并且OP也询问了自己编写函数的定义,另一个重要方面是它是否写成(注意角括号)
#include <stdio.h>
预处理器假定它是一个标准库头,并首先在系统文件夹中查找已安装编译器的位置。
如果程序员自己定义一个函数并将.h文件放在当前工作目录中,他会使用(注意双引号)
#include "stdio.h"
Following说明了它,并且所有平台的行为都是可移植的。
它告诉编译器使用文件sdtio.h中的函数,结构,宏等,它代表了glibc的一部分(或者你得到的标准C库)。编译器还将输出可执行文件“to-link list”添加到记录中,它应该链接到标准C库。
源代码中的预处理程序指令是在编译程序之前处理的语句,在此步骤之后,源代码将转换为扩展的源代码,因为它现在包含对已在标准C库中定义的函数的引用(或任何其他)如printf,scanf,putw,getchar等.stdio.h是一个扩展名为“.h”的文件,其中包含c中使用的标准输入输出函数的原型(非定义)。
以上是关于什么#include 真的在c程序中做的主要内容,如果未能解决你的问题,请参考以下文章