基础

编译原理

预处理:

1. 去注释
2. #include文件包含
3. #define符号替换

编译阶段:

1. 语法分析
2. 语义分析
3. 符号汇总
4. 源代码转为汇编代码

汇编:

1. 形成符号表
2. 汇编指令->二进制指令

连接:

1. 合并段表    
2. 符号表的合并与符号表的重定位    

Linux内存管理

关键字:

一、数据类型关键字(12个):

(1) char :声明字符型变量或函数

(2) double :声明双精度变量或函数

(3) enum :声明枚举类型

(4) float:声明浮点型变量或函数

(5) int: 声明整型变量或函数

(6) long :声明长整型变量或函数

(7) short :声明短整型变量或函数

(8) signed:声明有符号类型变量或函数

(9) struct:声明结构体变量或函数

(10) union:声明共用体(联合)数据类型

(11) unsigned:声明无符号类型变量或函数

(12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)

二、控制语句关键字(12个):

A循环语句

(1) for:一种循环语句(可意会不可言传)

(2) do :循环语句的循环体

(3) while :循环语句的循环条件

(4) break:跳出当前循环

(5) continue:结束当前循环,开始下一轮循环

B条件语句

(1)if: 条件语句

(2)else :条件语句否定分支(与 if 连用)

(3)goto:无条件跳转语句

C开关语句

(1)switch :用于开关语句

(2)case:开关语句分支

(3)default:开关语句中的“其他”分支

D返回语句

return :子程序返回语句(可以带参数,也看不带参数)

三、存储类型关键字(4个)

(1)auto :声明自动变量 一般不使用

(2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)

(3)register:声明寄存器变量 https://blog.csdn.net/21aspnet/article/details/257511

(4)static :声明静态变量
修饰局部变量:
普通局部变量存储于进程栈空间,使用完毕会立即释放。
静态局部变量使用static修饰符定义,即使在声明时未赋初值,编译器也会把它初始化为0。且静态局部变量存储于进程的全局数据区,即使函数返回,它的值也会保持不变。

修饰全局变量:
普通全局变量对整个工程可见,其他文件可以使用extern外部声明后直接使用。也就是说其他文件不能再定义一个与其相同名字的变量了(否则编译器会认为它们是同一个变量)。
静态全局变量仅对当前文件可见,其他文件不可访问,其他文件可以定义与其同名的变量,两者互不影响。
在定义不需要与其他文件共享的全局变量时,加上static关键字能够有效地降低程序模块之间的耦合,避免不同文件同名变量的冲突,且不会误使用。

修饰函数:
非静态函数可以在另一个文件中直接引用,甚至不必使用extern声明
静态函数只能在声明它的文件中可见,其他文件不能引用该函数
不同的文件可以使用相同名字的静态函数,互不影响

四、其它关键字(4个):

(1)const :声明只读变量
const修饰的量为一个常量即不能被修改的量

            #include<stdio.h>
            int main()
            {
                const int a = 10;
                //int array[a] = {0};//error C2057: 应输入常量表达式     

               //则可以得知在C语言中const修饰的量为一个常变量不是常量

                int *p = &a;
                *p = 20;
                printf("%d   %d\n", a, *p);

                return 0;
                //20  20
            }

常变量和普通变量的区别在于常变量不能用于左值,其余的用法和普通常量一样。在一个工程的多个.c文件中的const修饰的量可以共享。

(3)typedef:用以给数据类型取别名(当然还有其他作用 typedef+数据类型+别名

(4)volatile:说明变量在程序执行中可被隐含地改变

内存管理:
https://blog.csdn.net/m0_37925202/article/details/81155213

ascii,Unicode和UTF-8 https://blog.csdn.net/Deft_MKJing/article/details/79460485

Copyright © liyang.com 2019 all right reserved,powered by Gitbook该文件修订时间: 2020-05-20 21:54:34

results matching ""

    No results matching ""