屏幕快照 2016-05-29 15.40.53.png

下面我们针对上述代码做一个简单的解析

=========================

一、#include

1、#include 是c语言的预处理指令之一,所谓预处理,就是在编译之前做的处理,预处理指令一般以#开头。

2、#include 指令后面会跟着一个文件名,预处理器发现 #include 指令后,就会根据文件名去查找文件,并把这个文件的内容包含到当前文件中。被包含文件中的文本将替换源文件中的 #include 指令,就像你把被包含文件中的全部内容拷贝到这个 #include 指令所在的位置一样

3、如果被包含的文件拓展名为.h,我们称之为"头文件"(Header File),头文件可以用来声明函数("函数"就是面向对象中的"方法"),要想使用这些函数,就必须先用 #include 指令包含函数所在的头文件

4、#include 指令不仅仅限于.h头文件,可以包含任何编译器能识别的C/C++代码文件,包括.c,.hpp,.cpp等,甚至.txt,.abc等等都可以

5、你可能会疑惑,为什么stdio.h用尖括号<>,而my.txt用双引号"" ?这个很好区别,如果是系统自带的文件,最好用<>;如果是开发人员自己创建的文件,最好用""

二、main函数

1、C中的函数就是面向对象中的"方法"。C语言是一门面向过程的语言,是以过程为中心的编程思想,就是先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用函数就可以了

2、一个C程序中一定会有一个main函数,也只能有一个main函数。main函数是整个C程序的入口。

3、main函数的返回值为int类型,接收2个参数,其实可以不写参数

main函数可以简化成这样:

屏幕快照 2016-05-29 16.47.10.png

这里要注意的是:这里的main函数没有写返回值类型,并不代表函数没有返回值,而是表示返回值类型为int类型,void才代表函数没有返回值

由于C语言的语法限制不严格,我们还可以进一步简化main函数:

屏幕快照 2016-05-29 16.47.52.png

虽然它要求main函数返回int类型的值,但我们可以不返回

三、stdio.h

1、stdio.h 是C语言函数库中的一个头文件,里面定义了一些标准输入输出函数。在main.c的第1行代码中,用#include指令包含了stdio.h文件。

2、这里之所以包含 stdio.h 文件,是因为代码中用到了在 stdio.h 内部声明的printf函数,这个函数可以向标准输出设备(比如显示器屏幕)输出数据,屏幕上输出的文字就是第7行代码printf("Hello, World!\n");造成的,双引号""内的文本为C语言的字符串

四、开发和运行C程序的步骤

13124858-72e7aae9902b47af8f7186dfb3327ca6.png

1、编写程序

C语言源文件的扩展名为".c",源文件以ASCII码形式存储,不能直接被计算机执行,因为计算机只能识别二进制指令,也就是0和1。

2、编译(VC环境下)

(1)、把C的源程序翻译成计算机可以识别的二进制形式的目标代码文件,这个过程称为编译,由C的编译器完成

(2)、在编译的同时,还对源程序的语法等进行检查。若出现语法错误,则编译失败。如果编译成功则生成目标文件,目标文件名跟源程序文件名一样,扩展名为".obj"。比如,mj.c编译后生成目标文件mj.obj

(3)、每个源文件是单独进行编译的,假如一个项目中有多个.c源文件,编译成功会生成多个对应的.obj目标。一般情况下,目标文件之间是有关联的,比如 a.obj 可能会调用 b.obj 中定义的一个函数,因此它们都不能够单独被计算机执行,而且目标文件中并不包含程序运行所需要的库函数等

3、链接(VC环境下)

(1)、将所有有关联的obj目标文件,以及系统提供的C库函数等组合在一起生成可执行文件的过程,称为"链接"

(2)、链接生成的可执行文件的文件名跟源程序文件同名,扩展名为".exe",计算机可以直接执行

4、运行

如果是在Windows环境下,直接双击".exe"文件即可运行C语言程序

c语言自动创建的main,c语言main.c文件简单解析相关推荐

  1. c语言自动取数函数,C语言中取随机数的函数

    匿名用户 1级 2009-08-11 回答 1. 基本函数 在C语言中取随机数所需要的函数是: int rand(void); void srand (unsigned int n); rand()函 ...

  2. c语言自动生成球队名称,C语言实现队(循环队列)

    之前用链表实现队,这里用数组实循环队列,今天又看了一下队列,发现少了计算队列长度的函数 队列的实现代码,牺牲一个元素存储空间 #include#define maxsize 10 typedef in ...

  3. c语言自动获取系统时间,C语言中如何获取系统时间?

    1 使用time_t time( time_t * timer ) 精确到秒 函数名: time 头文件:time.h 函数原型:time_t time(time_t * timer) 功能: 获取当 ...

  4. c语言 自动计时的秒表,c语言实现的简单秒表计时器

    #include #include #include #include struct tm //定义时间结构体,包括时分秒和10毫秒 { int hours,minutes,seconds; int ...

  5. c语言自动输入新数组,c语言 向有序数组中插入一个数,保持原顺序不变,将新数组输出...

    #include"stdafx.h" #include intmain() { intm,n,i,j,h; inta[17]={1,5,9,14,23,34,45,56,67,78 ...

  6. c语言怎么创建循环链表,纯C语言实现循环双向链表创建,插入和删除

    #include #includetypedefintElemType; typedefstructDLNode{ ElemType data;struct DLNode *next;struct D ...

  7. c 自动生成mysql表结构_EntityFrameworkCore 根据实体类自动创建数据库

    1.首先新建 Asp.Net Core WebApi 项目 2.添加一下引用 : 2.1   Pomelo.EntityFrameworkCore.MySql(我用的Mysql 根据自己情况引用就行) ...

  8. c语言 如何创建adt_C语言探索之旅 | 第二部分第六课:创建你自己的变量类型

    内容简介 前言 定义一个 struct 结构体的使用 结构体指针 union enum 总结 第二部分第七课预告 1. 前言 上一课是 C语言探索之旅 | 第二部分第五课:预处理 ,应该是比较轻松的. ...

  9. 自动取款机流程模拟C语言的实现

    C语言实现自动取款机的流程,锻炼对文件操作的理解和结构体的 运用,和对程序的组织能力,VC++6.0环境,win 7操作系统 . 代码如下: #include<stdio.h> #incl ...

最新文章

  1. 1个系统节拍 c语言_自己写的非抢占式嵌入式操作系统ATOS,全c语言,移植太......
  2. MySQL高级 - 日志 - 错误日志
  3. 【Python】文件夹的常用操作
  4. 《代码大全》程序员们怎样花费自己的时间
  5. 获取Resources文件下图片的精灵格式
  6. 0xc0150002(0xc0150002一键修复win10)
  7. sublime 快捷键F5执行python程序
  8. C#实现按键精灵的'找图' '找色' '找字'的功能
  9. zigbee学习之zigbee应用框架
  10. 联想ThinkBook 16+ 2023款 评测
  11. 重采样 上采样 下采样
  12. TLS握手协议分析与理解——某HTTPS请求流量包分析
  13. 《MATLAB SYNTAX》第4章 多项式
  14. iCoremail企业邮箱移动办公新突破
  15. 如何使用【亿愿专利下载器】批量下载美国专利的PDF全文
  16. css3实现两端对齐
  17. 创业力:创业者的9堂必修课01 1 2007IBMJava10100
  18. Git-error: dst refspec branch matches more than one
  19. 局域网安装第二台域控制器,互为冗余
  20. 备战网络工程师认证考试:历年真题合集

热门文章

  1. 单片机中LED灯的使用(流水灯、呼吸灯)
  2. 知识梳理,HTML5智能表单
  3. An Intuitive Guide to Optimal Transport|最优传输理论
  4. 外汇天眼:经济衰退无阻加息,欧美货币政策齐收紧
  5. go --- 生成随机MAC地址
  6. 【5个月自学,零基础至日语2级全攻略】
  7. 《C++ 沉思录》学习笔记——上篇
  8. Android 实现类似九宫格的程序锁
  9. 【天天动听】一道面试题分享.
  10. 80X86汇编语言程序设计教程(杨季文)习题答案四