C语言入门:基础篇01 介绍和gcc编译

目录

一、C语言简介

二、C语言语法标注

三、第一个C程序代码解析:hello world

四、编译器说明

五、C代码从源文件 -> 可执行文件:

六、C语言中的文件类型


一、C语言简介

        C语言是1971~1973年美国贝尔实验室的肯·汤姆逊和丹尼斯·里奇(C语言之父)创造的,是专门为了编写操作系统而诞生的语言,适合硬件编程,以运行速度快而著称,而且c语言适合编写数据结构和算法。C语言出现时间太早,有很多缺陷,因为没想到普通人也可以编程,但是很多前辈总结避免这些缺陷或陷阱的经验。

        语言发展历程:BCPL -> New B -> C -> UNIX -> Minix -> Linux -> gcc

        C语言三剑客(推荐书籍):《C陷阱与缺陷》《C与指针》《C程序设计语言》


二、C语言语法标注

    C89 旧的系统中的默认标准

    C99 对C语言的扩展和增强 ,需要使用C99 -std=gnu99

    C11 全新的升级,但还没有开始全面使用


三、第一个C程序代码解析:hello world

#include <stdio.h>

        程序员所编写的代码都不是标准c代码,需要一段程序翻译成标准c代码,负责翻译的程序叫做预处理器,翻译的过程叫做预处理。被翻译的语句叫做预处理指令,C语言中以#开头的都是预处理指令

           #include 的功能是把一个头文件导入(拷贝)到当前位置中

注意:#include <xxx.h> 直接从系统指定的路径下查找并加载头文件

           #include "xxx.h" 先从当前工作路径查找,找不到再从系统指定路径查找并加载

头文件:以.h结尾,存储一些辅助性代码,绝大多数都是函数的声明

源文件:以.c结尾,存储实际功能性代码

        C语言标准委员会为C语言以函数形式提供的一些基础功能,这些函数都被封装在libc.so 然后通过很多的头文件对不同功能的标准库函数进行说明,stdio.h就是其中之一。常用:stdlib.h string.h

 int main(){

  函数是C语言中函数是管理代码的最小单位,一个函数就是一个功能的实现

  main函数:程序入口也是出口,有且只有一个

  int:表示main函数的执行结果是个整数

printf("hello world\n");

printf/scanf:标准库的输出和输入函数,一般用于调试代码

转义字符:键盘上有一些不好直接表示的符号,通过一些特殊的字符搭配表示,这种字符搭配就称为转义字符

转义字符含义转义字符含义
\n换行\t制表符、Tab
\a铃响\b光标后退一个字符
\r光标回到行首%%显示一个%
\\显示一个\printf("\b \b")退格效果

*注意:C语言是以分号作为代码结束标注,使用大括号划分代码,必须用英文输入法

return 0;}

return的作用:返回一个执行结果给函数的调用者或者提前结束函数。

                        通常返回值出现三种情况:1.正数 -> 出现异常(别人导致)

                                                                    2.0 -> 一切正常

                                                                    3.负数 ->出现错误(自己导致)

*注:main函数是由操作系统调用,所以它的返回值给了操作系统,反映程序如何结束


四、编译器说明

        负责把人能看得懂的代文本文件翻译成计算机能看懂的二进制文件,由预处理器、编译器、链接器组成。

        gcc编译器是GNU社区为了编译Linux内核代码而开发的一款免费的编译器,默认语法标注是C99或C89,其重用编译参数如下:

参数说明参数说明
-E只显示预处理结果-S生成汇编文件
-c只编译不链接-o指定编译结果的名字
-I指定头文件的加载路径 -I path-l指定要使用的代码库 -lm 导入数学库
-Wall尽可能多的产生警告信息 有警告但是产生可执行文件-Werror把警告当错误处理 有错误不产生可执行文件
-std设置编译语法标准 -std=gnu89/99

五、C代码从源文件 -> 可执行文件:

    1.预处理:把源文件翻译成预处理文件

        gcc -E xxx.c 显示预处理的结果到终端

        gcc -E xxx.c -o xxx.i 把预处理结果存储到xxx.i预处理文件中

    2.编译:把预处理文件翻译成汇编文件

        gcc -S xxx.i 生成以.s结尾的汇编文件

    3.汇编:把汇编文件翻译成二进制的目标文件

        gcc -c xxx.s 生成以.o结尾的目标文件(里面是乱码)

    4.链接:把若干个目标文件合并成一个可执行文件

        gcc a.o b.o c.o ... 默认生成a.out的可执行文件


六、C语言中的文件类型

后缀说明参数说明
.c源文件.o目标文件
.h头文件.h.gch头文件的编译结果文件 会被优先使用
.i预处理文件.so共享库文件
.s汇编文件.a静态库文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

就酱77叭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值