- 博客(9)
- 收藏
- 关注
原创 预处理(C语言)
C语言设置了一些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的。__FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为一,否则未定义#define reg register //为register取一个简短的名字;) //用更形象的符号来替换一种实现case //在写case语句的时候自动把break补上。
2024-05-16 19:51:51 1010 1
原创 编译和链接
在的任何一种实现中,存在两个不同的环境。第一种是翻译环境,在这个环境中源代码被转换为可执行的机器指令(二进制指令)。第二种是执行环境,它用于实际执行代码。
2024-05-15 20:14:04 643
原创 动态内存管理
但是有时候会出现所需空间远小于数组空间的大小,导致大量空间的浪费;或者是所需空间大于数组空间的大小,无法存入数据这两种情况,那么使用数组的我们就会处于尴尬的境地。也就是上面说的p++的问题,p的值改变会使p指针指向动态内存的非起始位置,此时使用free会导致释放空间不完全,也就出现了所谓的内存泄漏问题。注意p的值不适合++,因为free(p)释放的是从p开始的空间内存,这会导致内存的浪费。因为 a 变量是在栈上开辟的空间,而 free 函数释放的是堆上面的空间,所以该情况错误。这个函数用于向内存申请一块。
2024-05-12 21:18:55 556
原创 自定义类型:联合和枚举
若是给上述Un中的i赋值成0x11223344,再给Un中的c赋值成0x55,那么再以16进制的方式打印i,则可能为0x11223355,也可能为0x55223344.(具体结构到底是什么样的得看编译器的大小端)在C语言中是可以的,但是在C++中是不行的,C++的类型检查比较严格,不能拿int类型赋值给枚举类型。Un1的最大成员的大小为5个字节,而最大对齐数为成员变量i的对齐数,也就是4,所以Un1的大小要对齐到4的整数倍,也就是。联合的成员是共用一块内存空间的,这样一个联合的大小,至少是最大成员的大小。
2024-05-12 15:09:13 728
原创 自定义类型:结构体
位段的声明和结构体是类似的,有两个不同:1. 位段的成员必须是int、unsigned int 、signed int 或 char(整型家族),在C99中位段成员的类型也可以选择其他类型。2. 位段的成员名后边有一个冒号和一个数字。int _b : 5;位段的位其实是二进制位的位,上述位段总计47个比特位,所以位段大小为8个字节。那么位段是用来干什么用的呢?int _b;int _c;int _d;
2024-05-10 23:06:52 517
原创 整型和浮点型数据的储存
10000000000000000000000000000001即为-1b同理unsigned char c是指一个无符号的字符型数据同上,c存放的补码为11111111,但是c是一个无符号的字符型数据,最高位不为符号位。发生整型提升时,无符号的数据在高位上直接补0。所以我们用%d打印的数为00000000000000000000000011111111,这还是补码。又因为用%d打印的是有符号的整型,最高位为0,表示它是整数,原反补相同,打印结果为255。
2024-05-08 11:10:51 800 1
原创 扫雷游戏
扫雷最简单的模式为9 X 9的规格,这里我们用二维数组储存棋盘。考虑到棋盘和雷若是在一个二维数组中,我们很容易搞混,所以在此用两个二维数组,分别去储存棋盘和雷。//mine数组中存放布置好雷的信息//shou数组中存放排查出雷的信息为了方便修改棋盘大小,棋盘的大小用宏定义。
2024-02-23 20:35:10 259 1
原创 【C语言】分支与循环语句
分支语句:分支语句:1.if...else...语句1.概念if语句控制条件分支。如果表达式的值不为零,则执行 if语句的主体,否则,则执行else语句的主体。(0即为假,非0即为真)先来看看if...else...执行结构流程图2.其他写法语句可省略else部分,写成只有if语句的形式也可写成i的形式,分支成多个部分3.注意事项。
2023-12-02 00:36:22 47 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人