
C语言学习
文章平均质量分 96
SmileToLifeForever
唯有自律,才能拥有自由和未来!
展开
-
自定义断言ASSERT宏函数
前言在C语言开发中,经常需要用到断言做防御性检查。但是如果ASSERT使用太多,影响系统性能,所以需要把通过宏,把ASSERT编译成debug版本,和release版本。自定义宏知识点do{}while()在宏定义中的运用;解决“;”问题把多行语句合并成一个代码块整体。代码示例通过条件控制,将代码编译成debug版本和release两种版本。/*************************** *use do{}while(0) for MACRO **********原创 2020-10-29 18:29:55 · 1755 阅读 · 0 评论 -
算法思维总结
文章目录二分查找算法二分查找算法二分查找有三种算法,基本二分查找,左边界二分查找,右边界二分查找算法。基本二分查找思路:每次查找,减半搜索区间(一般定为左右都为闭区间),如果找到target,返回目标,如果没有找到,返回-1.易错点:使用mid = left + (right - left) / 2, 可以防止溢出。代码示例:在这里插入代码片左边界二分查找右边界二分查找...原创 2020-10-18 15:30:02 · 2650 阅读 · 1 评论 -
LeetCode刷题防老年痴呆
文章目录前言反转整数前言为了锻炼自己的代码思维能力,空余时间时不时的刷下LeetCode的题目,防止老年痴呆,并且将自己认为比较经典的算法题目通过笔记的形式记录在这里。反转整数题目给定一个整数,可正可负,以倒序输出。例如:789 则输出:987-789 则输出:-987解题思路循环取出个位数,依次将上一次取出的个位数乘以10 再 加上当前取出的个位数。示例代码#include <stdio.h>#include <stdint.h>#include &l原创 2020-10-08 13:54:04 · 476 阅读 · 0 评论 -
二级指针和指针函数实现对指针地址的更改
文章目录背景解决方案实现一背景在使用链表的时候,需要初始化链表指针的头结点。如何让这个这个头结点初始化有效。就是今天要讨论的问题。解决方案初始化链表头结点,实际上就是分配一个内存空间。注意:这里没有讨论使用指针后的释放。有关内存泄漏,野指针的问题不做讨论。实现一通过二级指针实现对地址的更改。...原创 2020-04-22 22:52:14 · 601 阅读 · 0 评论 -
前车之鉴,后事之师
文章目录1. 类型转换导致的内存问题1. 类型转换导致的内存问题C语言虽然同时支持有符号数据和无符号数据类型。但是最好不要随意用无符号数据类型。因为在隐士类型转换情况下,如果是有符号数据转换为无符号数据类型,程序会出现意想不到的bug。下边列举一个有符号数据,隐士转换为无符号数据类型后,导致的内存错误。直接撸代码:在这里插入代码片...原创 2020-03-11 19:11:00 · 424 阅读 · 0 评论 -
设置sublime的编译系统为python/C/Java编译环境
新建python编译系统菜单栏:Tools —> Build System —> New Build System"encoding": "utf-8","working_dir": "$file_path","shell_cmd": "C:\\Users\\guoooxue\\AppData\\Local\\Programs\\Python\\Python37\\python...原创 2019-08-08 15:51:02 · 312 阅读 · 0 评论 -
C/Python经典code片段之学习总结
Python decoratordef timer(func): def wrapper(*args, **kwds): t0 = time.time() func(*args, **kwds) t1 = time.time() print("time cosumption is ", (t1-t0)) return wrapper@timerdef do_some...原创 2019-11-11 00:18:23 · 661 阅读 · 1 评论