2022-06-08 C语言笔记 | C与汇编 C语言笔记 C语言笔记 函数 通过栈传递参数 平衡栈(函数调用约定) cdecl 参数从右至左入栈 调用者清栈 stdcall 参数从右至左入栈 自身清栈 fastcall: ecx和edx传前两个参数, 剩下的参数从右至左入栈 自身清栈 提升栈使
2022-06-08 C语言笔记 | Struct结构体 C语言笔记 C语言笔记 结构体的概念 由一系列具有相同类型或不同类型的数据构成的数据集合, 叫做结构 struct是一种复合数据类型, 结构类型 在C语言中, 结构体(struct)是复合数据类型的一种, 同时也是一些元素的集合, 这些元素称为结构体的成员, 且这
2022-06-08 C语言笔记 | 函数调用协议 C语言笔记 C语言笔记 函数调用协议会影响函数参数的入栈方式, 栈内数据的清除方式, 编译器函数名的修饰规则等 三种协议: __stdcall, __cdecl, __fastcall 调用协议常用场合 __stdcall: Windows API默认的函数调
2022-06-08 C语言笔记 | 初始化器 C语言笔记 C语言笔记 结构体的匿名初始化器构造匿名结构体 1234567struct point { int x, y;};(struct point){ .x = 5, 6} 构造只有一个元素的匿名结构体并获
2022-06-08 C语言笔记 | 变量(Variable) C语言笔记 C语言笔记 变量的类型 自动变量: auto 默认的局部变量都是auto 静态变量: static 默认的全局变量都是static 寄存器变量: register 变量的申请 当申明一个变量时, 编译器会将指定的一块内存空间与变量名进行绑定
2022-06-08 C语言笔记 | 宏定义 C语言笔记 C语言笔记 预处理语句 作用 define 定义宏 undef 取消已定义的宏 if 如果给定条件为真则编译下面的代码 elif 如果前面的if给定条件不为真, 而当前条件为真则编译下面的代码 endif 结束一个if
2022-06-08 C语言笔记 | Typedef类型自定义 C语言笔记 C语言笔记 基本类型1234typedef int INT;INT data;int data; 指针类型1234typedef int* PINT;PINT pdata;int* pdata; 数组类型1234typedef int Array[
2022-06-08 C语言笔记 | 常规操作 C语言笔记 C语言笔记 取结构体成员的偏移1#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
2022-06-08 C语言笔记 | 数据类型与取值范围 C语言笔记 C语言笔记 取值范围 类型 大小(字节) 范围 unsigned char 1 0 ~ 255 [signed] char 1 -128 ~ 127 unsigned short [int] 2 0 ~ 65535 [signed
2022-06-08 C语言笔记 | 格式控制字符 C语言笔记 C语言笔记 % - 0 m.n l/h <格式字符>%表示格式说明的起始符号, 不可缺少 -有-表示左对齐输出, 如省略表示右对齐输出 0有0表示指定空位填0, 如省略表示指定空位不填 m.n m指域宽, 即对应的输出项在输出设备