C语言学习笔记---001C语言的介绍,编译过程原理,工具等
创梦技术交流平台:资源下载,技术交流,网络赚钱:
交流qq群:1群:248318056
2群:251572072
技术交流平台:cre.iqee.cn
博文相关代码资源下载地址:cre.iqee.cn
-----------------------------------
-----------------------------------------------------------------------
a.C语言的历史
起源
标准化
b.基于c的语言
编程语言都借鉴了c语言的特性
c++语言:包含所有c语言特性,增加了类和其他的特性支持面向对象编程
java:基于C++的,包含了一些c的特性
C#:是由java和c++发展起来的
Perl:脚本语言
c.c语言特性:
c语言是一种底层语言,为了适应系统编程的需要,c提供了对机器级别的
概念的访问,这些都是其他编程语言隐藏的内容.
d.c语言是一种小型语言,与其他编程语言相比,c语言提供了一套更为有限
的特性集合,很大程度上,c语言在程序上依赖于一个标准函数库
e.c语言是一种包容性语言,c语言假设用户知道自己在做什么,所以提供了更为广阔的自由度
---------------------------------
1.优点:
高效,可移植性,功能强大,灵活,标准库
2.缺点:c程序错误更加容易隐藏
不好理解,比如内核
c语言缺少类和包,所以编程规模不能很大,维护起来不方便
----------------------------------------
3.4. 3.4 C语言书写规范
正确的按照规范来编写C语言程序,可以方便程序代码的查
看,排错和维护。更加的有条理性
<1>语句,可以分开放在任意多行内。
<2>空格使我们更容易区分。
<3>缩进有助于轻松识别程序嵌套。
<4>空行可以把程序划分成逻辑单元。
<5>驼峰命名方式和下划线区分方式。
--------------------------------------------------------------------
/* Note:Your choice is C IDE */
#include "stdio.h"
//上面这个不可缺少,包含了c语言标准的输入输出相关信息
//程序可执行代码都在main函数中
//void main()
//{ 30*3;{7{}-3;}{}}
//大括号有截断的特性
//{7{}-3}中间的大括号,把7和-3分成了两段
//7后边不加分号是不对的
//{}里面包含的内容,对于外部是不可见的,是单向透明的
//-------------------------------------
//1.预处理:程序中以#开始的命令都是做预处理命令,由预处理器进行
a.预处理就是系统启动的时候先初始化的处理
b.如果#include 预处理后面,用了<>符号来引入的,那么gcc编译器会自动的
去系统的目录中找这个文件
如果用#include "demo.h",用"",gcc就会去当前目录中找这个文件
c.预处理指令作用是把其他文件的内容加入到当前文件中
/*处理. gcc -e
2.编译:把程序编译成二进制文件,hello.o文件,目标文件 gcc -c
3.链接:由连接器把目标代码和其他的附加代码整合在一起
这个时候才有了最终的可以执行的程序
gcc hello.o 这样执行完成了之后,会生成一个
hello.out
4.gcc编译器:
a.gcc是c语言最流行的编译器
b.gcc [options][filenames]
5.GNU Compiler Collection (gcc)
MinGW(Windows系统下的gcc工具)
不同计算机上的gcc工具,可能差别很大
gcc为32位的机器上提供了工具
gcc为64位的机器上也提供了工具
同一个程序,在32和64位上编译后,执行出来的结果是不一样的
6.
*/
int main{
return 0;
}
--------------------------------------------------------
4.4变量和赋值
4.1. 4.1变量
本质上,变量就是一块命了名内存空间,当访问这个变量
的饿时候,其实就是在访问这块内存空间。
类型:每一个变量都必须声明的它的类型,类型用来说明
变量所存储的数据的种类。C语言拥有很多类型,可以分为基
本数据类型和复合数据类型。
基本数据类型包含字符型(char)整型(int)浮点型(float)。
声明:任何变量在使用之前必须进行声明。
赋值:变量通过赋值的方式来获取值。变量在赋值或者以其
他方式使用之前必须进行声明,
-----------------------------------------------------------
5.注释的类型:
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
//1.注释
//单行注释
/*
多行注释
*/
}
-------------------------------------------------------
6.具体说一下gcc的编译过程:
a.预处理: 这个阶段用来处理所有的预处理指令
b.编译: 对预处理后的代码进行翻译工作,得到计算机所认识的格式,得
到的结果文件叫目标文件,扩展名是.o.
可以理解为:得到的类似于一个网站的所有网页都有,但是连接的关系
还没有,知道了一个网页不知道,下一个该跳到哪个文件
c.连接:吧所有的目标文件和其他的必要的文件合并在一起得到最终的
可执行文件
可以理解为:把网页上的所有连接给建立好
-------------------------------------------------------------------
7.gcc的常用选项
-o 用于指定最终生成可执行文件的名字
-E 只对源文件进行预处理
gcc -E demo.c
只进行预处理,处理完之后,代码会有所变化,
具体变化就是
#include 预处理指令没了,把预处理指令指定的文件包含了进来
-c 用于只对源文件进行预处理和编译工作
--------------------------------------------------------
编译标准:
8.c语言历史:
c语言的标准:
a.国际组织规定,在不同的年份规定了两个标准
c89标准----学校里学到的
c99标准----对c89做了一些扩展,有些语法在c89是不支持的,但是在
c99可以支持,如果,在c89中使用了c99的语法,需要用一个选项告诉
gcc,用c99标准来编译
用下面命令指定,c89,c99标准
-std=c89/-std=c99 用来指定编译所遵循的c语言的标准
不指定的时候用c89的标准来编译
---------------------------------------------------------------------