宏
在 c c c和 c + + c++ c++中以 # \# #开头的均为预处理命令,宏定义也非常简单,通常用 # d e f i n e \#define #define关键字来声明
宏的特点
宏可以理解成简单的函数,但是是预编译的时候就进行处理
系统宏
"
"
""
""为用户开发头文件,先在用户定义主 函数里找;
<
>
<>
<>为系统头文件,先在系统文件目录找
条件编译
只编译部分函数段
c语言编译流程
i
n
d
e
x
.
c
p
p
index.cpp
index.cpp里面有一些宏,进入预编译器把宏替换了变成
i
n
d
e
x
.
i
index.i
index.i,进入编译器将预编译文件变成汇编文件
i
n
d
e
x
.
s
index.s
index.s,然后进入汇编器生成目标文件
.
o
b
j
.
o
.obj.o
.obj.o(此时是二进制文件,打开即为二进制乱码),再进入连接器,比如之前写过很多个函数,这里即把很多个
.
o
.o
.o文件合在一起即为可执行文件。
i
n
d
e
x
.
c
p
p
→
i
n
d
e
x
.
i
→
i
n
d
e
x
.
s
→
.
o
b
j
.
o
→
i
n
d
e
x
.
e
x
e
index.cpp \rightarrow index.i \rightarrow index.s \rightarrow .obj.o \rightarrow index.exe
index.cpp→index.i→index.s→.obj.o→index.exe
S T L STL STL基本概念
容器
S
T
L
(
S
t
a
n
d
a
r
d
T
e
m
p
l
a
t
e
L
i
b
r
a
r
y
)
STL(Standard\,Template\,Library)
STL(StandardTemplateLibrary)标准模板库,
S
T
L
STL
STL是内置的。
S
T
L
STL
STL具有高重用性、高性能、高移植性。是一个容器。
容器分为序列式容器和关联式容器:
- 序列式容器:容器的元素是由进入容器时机和地点来决定。
- 关联式容器:容器已有 规则,进入容器的元素的位置不是由时机和地点决定。
迭代器
可以视为一个指针,一次指向一个容器;实际上迭代器是一个类,这个类封装一个指针。