C语言
Tohka2333
懒狗一枚,要开始写博客辣!
展开
-
C语言宏的用法
虽然似乎函数和宏看起来一样,但是后置++,是在向函数传参之后才进行++,虽然最后a,b都各++了一次,但是传入函数内的是初始值,是固定的,从而没有影响函数,而影响了宏。怎么注意这种情况呢?可以试试上面的ADD宏,可以发现“副作用”对它并没有影响,因而,当参数出现次数超过一次时就要注意参数是否具有“副作用”。既,如果参数是有“副作用”的(如++,--),那么会连同“副作用”一起,传入宏的内部,但函数不会。原创 2023-02-10 13:54:57 · 176 阅读 · 0 评论 -
通讯录3.0
前面对通讯录进行的修改,已经使通讯录有了动态扩容的能力,但是还有另一个很大的问题就是,我们输入通讯录的数据是储存于内存中的,当程序运行结束后,程序所申请的内存空间也将被收回,因而联系人数据会丢失,那么如何将数据存储到磁盘当中呢?再然后,既然我们存储了数据,那么就还要对数据进行读取,读取应该在函数初期进行。首先,在关闭通讯录前,要将通讯录里的数据存入磁盘。这就要依靠库函数里关于文件操作的函数了。这样就有了能使用的通讯录3.0了。原创 2023-01-16 15:20:27 · 84 阅读 · 0 评论 -
动态扩容通讯录实现
前不久学会了通讯录的实现,但是通讯录的大小始终是固定死的,当放满之后就不能再放入了,或者开辟的空间过大,只放入一两个联系人又造成空间的浪费。为了解决这个问题,在学习了动态内存分配后得以实现,话不多说,看看效果。当容量达到3之后,再次进行ADD时,检查容量的函数就会进行扩容,从而使容量增加,既解决了满了不够用的问题,还解决了开辟空间过大过于浪费的问题,当然,退出程序要释放申请的空间,避免出现额外的麻烦。原创 2023-01-15 14:54:20 · 71 阅读 · 0 评论 -
C语言实现简单通讯录
通讯录的基本功能包括:添加、删除、修改、查找、排序、编辑、展示都已具备。通过结构体的学习,我们已经具备了一定的知识,现在就来进行通讯录的实现;首先是整个的头文件;然后是主要函数的声明。原创 2023-01-12 18:32:29 · 96 阅读 · 0 评论 -
结构体的大小计算
通过简单画图就能很容易理解到为什么该结构体大小会为12字节了4+1+4+3=12,中间3个字节因为要对齐所以未被利用,但依然被占用,属于结构体内的大小。若只是单独相加的话大小应该是4+1+4=9,但实际上用sizeof()计算出的结果却是12;:结构体成员自身大小和默认对齐数的较小值,在vs下默认对齐数是8;我们已经认识了结构体并知道了结构体的一些使用方式,但是,结构体的大小怎么计算呢,直接把成员单独大小加起来?1)结构体的第一个成员,对齐到结构体在内存中存放位置的0偏移处;原创 2023-01-11 14:39:21 · 88 阅读 · 0 评论 -
C语言小游戏---扫雷
通过C语言实现小游戏,扫雷原创 2022-11-10 21:05:45 · 732 阅读 · 0 评论