文章目录
1. GCC使用以及常用选项
1.1 GCC概述
GCC就是一个c语言编译器,让机器读GCC懂你写的那些乱七八糟的代码,或者给你报错,让你心烦!
1.2. C语言编译过程
| GCC版本:5.4.0
语法格式:
gcc [参数] [源文件]
常用参数:
参数 | 内容 |
---|---|
-o | 指定生成的输出文件 |
-E | 仅执行编译预处理 |
-S | 将C代码转换为汇编代码 |
-wall | 显示警告信息 |
-c | 仅执行编译操作,不进行连接操作 |
参考指令
无选项编译文件:生成文件名默认为a.out
[root@linux ~]# gcc linux.c
预处理:生成文件后缀为.i
[root@linux ~]# gcc -E linux.c -o linux.i
编译:将代码转换为汇编语言,文件后缀为.a
[root@linux ~]# gcc -S linux.i -o linux.a
汇编:转换为二进制文件,仅编译不连接
链接:转换为可执行文件
[root@linux ~]# gcc -o linux linux.c
1.3 C语言常见错误
- 头文件引用:
#include < >
系统里面找 |#include" "
文件里面找; - 编译错误如:中文分号
;
1.4 预处理的使用
- 条件预处理
- 宏(替换:不进行语法检测)
#ifdef #else #endif
- 预定义宏
- 宏展开下的
#
,##
#
字符串化
##
链接符号
2. C语言常用关键字及运算符操作
2.1 关键字
关键字就是编译器预先定义了一定意义的字符串,读到**;
**后结束;
-
数据类型
C语言操作对象:资源/内容(内存类型的资源,LCD缓存、LED灯(IO));
C语言描述资源属性:资源的大小,限制内容资源的大小工具是关键字;
硬件芯片最小单位为:bit
;软件最小单位:byte
;8 bit==1 byte;关键字 内容解释 char 字符串大小为1字节 int 整数,字节数跟编译器有关 long,short 长整型,短整型 unsigned,signed 无符号数,有符号数 float,double 单精度浮点数4字节,双精度浮点数8字节 void 空,内存限制符号 -
自定义
关键字 内容解释 struct 结构,元素之间的和 union 共用体,公用起始地址 enum 枚举,自增(可怜的关键词) typedef 重定义(起外号),方便阅读 -
逻辑结构
关键字 内容解释 if,else 条件结构 switch,case,default 多分支结构 do,while,for 循环结构 continue,break,goto 跳跃结构 -
类型修饰
对内存资源存放位置的限定,资源属性中位置的限定,对嵌入式开发较为重要。
关键字 内容解释 auto 自动变量 register 限制变量定义在寄存器上的修饰符 static 静态变量 extern 外部申明 const 常量的定义(只读的变量) volatile 告知编译器编译方法的关键字,并不优化编译 -
杂项
关键字 | 内容解释 |
---|---|
sizeof | 编译器查看内存空间容量的关键字工具,并不是函数 |
return | 返回 |
2.2 运算符
-
算数操作运算符
加法
+
,减法-
,乘法*
,除法/
,取余%
; -
逻辑运算符
逻辑或
||
,逻辑与&&
大于
>
,小于<
,大于等于>=
,小于等于<=
,等于==
;!
为真,~
取反 -
位运算
<<
左移(乘法*2),>>
右移(除法/2);&
与操作(屏蔽作用,清零器),|
或(取出作用,保留),^
异或(相同为假,不同为真) -
赋值运算
=
赋值与+=
,-=
,&=
… -
内存访问符号
()
限制符,函数符,[]
数组,内存访问ID符号,{}
函数体,->
地址访问,.
变量访问&
取地址,*
指针
2.3 逻辑操作
->
地址访问,.
变量访问
&
取地址,*
指针
引用内容
以上内容参考链接:
https://www.linuxcool.com/gcc.