- 博客(10)
- 收藏
- 关注
原创 程序环境和预处理(初解)
宏常被由于简单的运算有两个原因:首先:用于调用函数和从函数返回的代码可能比实际这个小型计算机所需要的时间更多因为函数的时间花费大致有三个方面一是调用前的准备,包括传参,函数栈帧空间的维护二是主要的运算过程三是函数返回,返回值的处理,函数栈帧的销毁而宏只有运算时的时间消耗,所以宏在程序的规模和速度方面更甚一筹其次,函数的参数必须声明为特定的类型,而宏是类型无关的但是,宏也有缺点每次使用宏时,可能会大幅增加程序长度宏也没法调试由于类型无关,也就不够严谨。
2023-05-28 12:15:35 127
原创 结构体大小计算
如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。
2023-04-11 17:56:14 79
原创 模拟实现memcpy,memmove
注意:因为destination和source的类型是void*,在使用时需要强制类型转换称自己需要的类型以上的代码是我们自己实现memcpy的成果,当我们把参数传给函数时,因为怕存在野指针就用断言来确认是否可行,接着while循环内就是主要的实现过程。然而当目的地的内存和源头的内存中有重合的空间时,使用memcpy往往不能得到正确的结果。
2023-04-11 17:20:06 76
原创 数据的存储
但是,我们知道,科学计数法中的E是可以出现负数的,所以IEEE 754规定,存入内存时E的真实值必须再加上一个中间数,对于8位的E,这个中间数是127;我们知道电脑通过电流来运算,通过电流的变化来让电脑进行工作,所以,计算机只能了解0、1这两个数字,所以数据在内存的储存也是通过二进制。那么,s=1,M=1.01,E=2。IEEE 754规定,在计算机内部保存M时,默认这个数的第一位总是1,因此可以被舍去,只保存后面的部分。类似于十进制中的1234,1是千位,2是百位,3是十位,4是个位。
2023-03-20 15:37:24 100
原创 C语言的三子棋实现
作为C语言的初学者,面对复杂的题目和代码,不免打击了我们学习的热情,但是三子棋作为我们闲暇时光的消遣小游戏,用C语言来实现并不是佷难。所以我们需要创建一个3*3大小的二维数组,来放置我们的棋子(我们这里是和电脑进行游戏,如果有朋友一起玩,代码会更简单)我们给朋友玩我们自己敲的代码,就不得不提到数组的下标,正好可以提高受众的范围和游戏体验。来进行操作,通过改变这两个全局变量的值就可以操作棋盘的格局,提高游戏可操作性。现在我们知道棋盘上是3*3的,但是如何更直观,连横线竖线都没有,还能叫棋盘吗。
2023-02-09 23:26:41 69
原创 百马百货问题/百钱百鸡
在该问题中需要用到两个for循环(for循环的初始,判定,变化在同一行中更加直观)对于三种变量的求值,在我看来是一种只知道。的嵌套,再跟据题目给的条件将三个变量组合。注意:组合的时候需要判断何时用=所以我们不能漏掉任何一种情况。两个条件的三元一次方程组。
2022-12-02 22:36:52 204
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人