C语言 | 为什么写这三行代码

C语言实现Hello xiaolin

#include//头文件 int main()//主函数 程序的入口 {   printf("Hello xiaolin!\n");// \n是换行的意思 return 0;}

编译运行结果:

Hello xiaolin!--------------------------------Process exited after 3.326 seconds with return value 0请按任意键继续. . .

为什么写#include

#include是在程序编译之前要处理的内容,是编译预处理命令,一般以“#”开头,并且不用分号结尾。

在上述程序里编译预处理命令称为文件包含命令,作用是在编译之前把程序需要使用的关于系统定义的函数printf()的一些信息文件stdio.h包含进来。

stdio.h是C语言编译系统提供的一个文件名,stdio是“standard input & output”的缩写,即有关标准输入输出的信息。

在上一节小林讲过C语言本身不提供输入输出函数,如果想用printf输出函数怎么办呢?

#include的作用就是用来提供printf和scanf这些信息的。

如果不加#include,编译程序会报错,如下:

如果也去掉printf则会编译通过,不加头文件是没有意义的,小林是为了给大家做演示才不加的,别学我。

为什么写main

main函数是程序的入口,举个例子,main函数就相当于你家房子的大门,你要回家是不是要通过大门,同理到C语言就容易理解了。

C语言程序总是从main函数开始执行的,如果main函数中有其他函数,则完成对其他函数的调用后再返回到主函数,最后由main函数结束整个程序。

return语句的作用

一句话总结:将结果返回到函数调用处。

return 0的意思是程序运行到这里,就不往后运行了,程序结束了,这行代码可以省略。

运行C语言程序步骤

上机输入和编译源代码 

  • 通过键盘向计算机输入程序,如发现有错误,要及时改正。最后将此源程序以文件形式存放在自己指定的文件夹内,文件用.c作为后缀。

对源程序进行编译

  • 先用C编译系统提供的“预处理器”对程序 中的预处理指令进行编译预处理。在用编译系统对源程序进行编译时,自动包括了预编译和正式编译两个阶段,一气呵成。

进行连接处理

  • 经过编译所得到的二进制目标文件还不能供计算机直接使用,必须把所有的编译后得到的目标模块连接装配起来,再与库函数形成一个整体,生成可执行程序。

运行可执行程序 

  • 一个程序从编写到运行成功,并不是一次成功的,往往要经过多次反复。而且即使是编写好的程序也并不一定能保证正确无误。

声明:

本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339014.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何分析堆外内存使用情况_堆上与堆外的内存使用情况

如何分析堆外内存使用情况总览 最近有人问我在Java中使用堆内存的好处和智慧。 面临相同选择的其他人可能会对这些答案感兴趣。 堆外内存没什么特别的。 线程堆栈,应用程序代码,NIO缓冲区都在堆外。 实际上,在C和C 中,您只有非托…

centos 虚拟机glibc升级_分享Centos6.5升级glibc过程

上次看到有同学对Centos系统 glibc升级有点疑问, 不过相对来说glibc升级还是比较简单的, 网上也有很多介绍文章, 这里整理了个安装过程供大家参考下 阅读原文场景需求默认的Centos6.5 glibc版本最高为2.12, 而在进行Nodejs开发时项目所依赖的包往往需要更高版本的glibc库支持, …

windows redis批量删除前缀的key_阿里官方Redis开发规范!

本文主要介绍在使用阿里云Redis的开发规范,从下面几个方面进行说明。键值设计命令使用客户端使用相关工具通过本文的介绍可以减少使用Redis过程带来的问题。一、键值设计1、key名设计可读性和可管理性以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔…

matchers依赖_Hamcrest Matchers的高级创建

matchers依赖介绍 上一次 ,我讨论了Hamcrest Matcher是什么,如何使用以及如何制作。 在本文中,我将解释创建Hamcrest Matchers的更多高级步骤。 首先,我将分享如何使您的匹配器更易于类型安全,然后介绍无状态匹配器的一…

深入浅出讲解C语言#define宏定义应用及使用方法

在C语言中,我们使用#define来定义宏。在C程序编译的预处理阶段,预处理器会把宏定义的符号替换成指定的文本。不带参数的宏关于宏最常见的就是用来定义数值常量的名称,即没有参数的宏定义,采用如下形式:1#define 宏名称…

安卓系统双屏异显_Android 双屏异显实现的三种方式

在各种产品脑洞大开的时代,需求也是日益新异,笔者最近开发了一套双屏异显app。现在做一些总结1.双屏异显第一种实现方式(官方提供的Presentation)Android 提供了一个叫 Presentation 类,来实现第二屏, 继承 Presentation 实现第二…

hazelcast入门教程_Hazelcast入门指南第5部分

hazelcast入门教程这是我撰写的有关Hazelcast的一系列文章的延续。 我强烈建议您阅读其他内容: 第1 部分 , 第2 部分 , 第3 部分和第4部分 。 一气呵成的东西 这篇文章中没有Hazelcast专用代码。 让我重复一遍。 这篇文章中没有Hazelcast专用…

单片机C语言编程:.H文件与.C文件的关系!

一个.C文件对应一个.H文件是一种良好的编程习惯,那么.C和.H文件之间的关系是怎么样的呢?一、.H文件与.C文件的关系:迄今为止,写过的程序都是一些很简单的程序,从来没有想到要自己写.H文件,也不知道.H文件到…

python编程快速上手-----让繁琐工作自动化_Python编程快速上手让繁琐工作自动化--逗号代码和字符图网格...

逗号代码假定有下面这样的列表:spam [apples, bananas, tofu, cats]编写一个函数,它以一个列表值作为参数,返回一个字符串。该字符串包含所有表项,表项之间以逗号和空格分隔,并在最后一个表项之前插入and。例如将前面…

spring依赖注入_Spring的依赖注入陷阱

spring依赖注入Spring框架中有三种注入变量: 基于二传手的注射 基于构造函数的注入 基于现场的注入 这些机制中的每一种都有优点和缺点,并且不仅只有一种正确的方法。 例如现场注入: Autowired private FooBean fooBean;在生产代码中使用…

C语言中的“悬空指针”和“野指针”是什么意思?

提起C语言大部分开发者很自然就会想到指针二字,没错,作为C的核心和灵魂,它的地位咱们就不再赘述了,今天我们想跟大家讲的是指针中的两个特有名词:“悬空指针”和“野指针”。1 悬空指针C语言中的指针可以指向一块内存&…

java zip解压_Java语言入门第一课

Java最初的目标是嵌入式设备,不过在嵌入式设备方面并未取得成功。失之东隅,收之桑榆,Java却在Web领域被广泛接受。近年来,随着Java在服务器领域的不断突破,让这门语言越来越流行。有人喜欢Java的纯面向对象&#xff0c…

怎么用c语言做出等妖三角形_初二数学培优,怎么用顶点坐标求三角形面积?割补法这样用很简单...

点击右上角关注“陈老师初中数理化”分享学习经验,一起畅游快乐的学习生活。根据顶点坐标求解三角形的面积是初二数学的重要知识点,本文就例题详细解析这类题型的解题思路,希望能给初二学生的数学学习带来帮助。例题如图,在平面直…

restful xml_使用入站适配器公开HTTP Restful API。 第1部分(XML)

restful xml1.简介 这篇文章的目的是使用Spring Integration HTTP入站适配器实现HTTP Restful API。 本教程分为两个部分: XML配置示例(同一篇文章)。 Java DSL示例。 这将在本教程的下一部分中进行说明,展示如何使用Spring Int…

C语言的位域

位域是什么?有些数据在存储时并不需要占用一个完整的字节,只需要占用一个或几个二进制位即可。例如开关只有通电和断电两种状态,用 0 和 1 表示足以,也就是用一个二进位。正是基于这种考虑,C语言又提供了一种叫做位域的…

xp精简工具_办公人士需要精简Win10吗?

首先要说自己的系统需求1,笔记本是主要生产力工具,靠它做方案,联系网络社交;2,会偶尔(一月2-3次)用到PS,AI,PR等软件;3,文件多,版本多…

matlab 删除路径_MATLAB使用教程(一)—新手来看

前言:在这里,本人默认大家已经安装好了MATLAB软件,如果没有,请自行安装。注意事项:新手容易犯错,打开MATLAB之后,请按CTRLQ这个组合键,是不是发现你的MATLAB关闭了?对&am…

数据的gzip压缩解压缩_使用GZIP和压缩数据

数据的gzip压缩解压缩抽象 我们都知道用zip或gzip压缩文件的含义。 但是在Java中使用压缩文件并不像您想的那样简单,特别是如果您不是直接使用文件而是压缩流数据时。 我们会去: 如何将字符串转换为压缩/压缩字节数组,反之亦然 创建用于读取…

C语言开发单片机为啥都是全局变量形式?

01前言全局变量简直就是嵌入式系统的戈兰高地。冲突最激烈的双方是:1. 做控制的工程师;2. 做非嵌入式的软件工程师。02做控制的工程师特点他们普遍的理解就是“变量都写成全局该有多方便”。我之前面试过一个非常有名的做控制实验室里出来的PhD/Master&a…

ajax get请求_python测试开发django50.jquery发送Ajax请求(get)

前言有时候,我们希望点击页面上的某个按钮后,不刷新整个页面,给后台发送一个请求过去,请求到数据后填充到html上,这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。Ajax可以完美的实现。…