1、符号

EOF:结束符(文本文件)
enum在c语言中是关键字 ,c语言对大小写比较敏感,所以ENUM是一个标识符,但不是关键字

2、头文件

include <> 编译器直接从系统类库目录里查找头文件,如果类库目录下查找失败,编译器会终止查找。
#include “” 编译器默认从当前文件所在目录下查找头文件,如果查找失败,再从项目工程中设置的头文件引用目录查找
标准库函数允许被重载,不允许被重定义。
宏:
宏只是预定义的函数,在编译阶段不进行类型安全性检查,在编译的时候将对应函数用宏命令替换。对程序性能无影响** .h中ifndef/define/endif 是用来防止头文件重复引用的

3、继承

面向对象的特性:封装、抽象、多态、继承
C语言的标识符不能以数字开头

4、C的数据类型

整型、实型(浮点型)、字符型

5、枚举常量的值都是整数

第一个默认0,后面默认在前面的值加一

6、打开文件写:fopen(“abc.txt”,”w”);

7、标准输入:stdin 标准输出:stdout 标准输出输入:stdio

8、自定义标识符

系统函数可以(printf),_可以
关键字不行(enum)

9、并发编程三大特性:原子性、有序性、可见性

violatile关键字:保证了有序性和可见性。只能保证对单次读/写的原子性。
https://blog.csdn.net/buaa_shang/article/details/8203973

10、用到volatile关键字修饰变量的情况:

设备的硬件寄存器(如:状态寄存器)
一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)
多线程应用中被几个任务共享的变量
volatile说明后面所定义的变量随时都有可能改变 ,因此编译后的程序每次需要存储或读取这个变量的时候 ,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储, 可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。不能优化,每次都从内存读取

switch语句

C++
1. char、short、int、long、bool 基本类型都可以用于switch语句。
2. float、double都不能用于switch语句。
3. enum类型,即枚举类型可以用于switch语句。
4. 所有类型的对象都不能用于switch语句。
5. 字符串也不能用于switch语句

xx集合

共用体(联合)是一种同一存储区域由不同类型变量共享的数据类型。
结构体是用同一个名字引用的相关变量的集合。