6day_Linux
【1】
struct 结构体类型名
{
数据类型 成员名1;
数据类型 成员名2;
:
数据类型 成员名n;
};
【2】定义结构体变量
struct 结构体名
{
成员列表;
}变量名1;
struct 结构体名 变量名2;
【3】访问结构体成员
结构体变量名.成员名
【4】结构体初始化操作
struct 结构体名 变量名={初始数据表};
【5】无名结构体
没有类型名。
一般状态下:无名结构体不可以定义局部变量。
【6】结构体嵌套
1--- 成员所属的数据类型是 结构体类型
2--- 内部的结构体通常定义为无名结构体
【7】结构体数组
本质是数组,元素是结构体类型
【8】结构体指针
本质是指针,指向一个结构体数据
【9】typedef
用于给已存在的类型名,进行重命名。
【10】共用体
1--- 定义
union 共用体类型名
{
成员表列;
}变量名1;
union 共用体类型名 变量名2;
2--- 成员共用同一个存储区域;
【11】
|
关键字 变量位置 存储期 作用域 | 存储模型
-------------------------------------------------------------|---------------
局部变量 函数同步 函数内 |
1、auto(默认) | 自动存储
全局变量 程序同步 本文件内 |
-------------------------------------------------------------|---------------
|
2、register 局部变量 函数同步 函数内 | 寄存器存储 1、double不能使用reg
| 2、存储在寄存器中
-------------------------------------------------------------|---------------
|
局部变量 程序同步 函数内 | 空链接 1、程序同步
| 2、初始化一次
3、static | 3、初始化
|
全局变量 程序同步 本文件 | 内部连接
|
-------------------------------------------------------------|---------------
|
4、extern 全局变量 程序同步 多文件 | 外部链接
|
-------------------------------------------------------------|---------------
【12】malloc(手动分配和释放)
void *malloc(size_t size);
功能: 申请 size个字节大小的空间
返值: 就是这段申请空间的首地址
void free(void *ptr);
功能:释放堆区手动申请的空间
malloc 和 free 一般是配对使用。有申请一般都有释放。
【13】Makefile
target : dependency_files
<TAB> command
1---
gcc -c main.c -o main.o
gcc main.o -o main
main:main.o
main.o:main.c
2---
gcc -c main.c -o main.o
gcc -c add.c -o add.o
gcc -c sub.c -o sub.o
gcc *.o -o main
$< 第一个依赖文件的名称
$+ 所有的依赖文件,以空格分开,并以出现的先后为序
$^ 所有不重复的依赖文件,以空格分开
$@ 目标文件的完整名称
$* 不包含扩展名的目标文件名称
$? 所有时间戳比目标文件晚的的依赖文件,并以空格分开
$% 如果目标是归档成员,该变量表示目标的归档成员名称