
C/C++
文章平均质量分 84
lusanshui
一个孤独与欲望的容器 一段崎岖而奇妙的旅程
展开
-
值传递和引用传递,以及const在函数中的用法
简述理解值传递与引用传递,可以提高代码的运行效率;理解const在函数中的用法,可以增强程序的健壮性,“Use const whenever you need"。而const的用法针对值传递、引用传递又有很大的区别。下文将分成难度递增的三个阶段,来记录值传递、引用传递和const修饰符在函数中的用法。level 1–值传递与引用传递1、值传递主调函数向调用函数传递参数实际上只是将实参...原创 2018-12-19 16:14:44 · 3306 阅读 · 0 评论 -
堆与栈的区别,程序使用内存区域划分
简述内存区域划分是比较重要但也常令人忽视,我也是最近才比较清晰,记录一下。程序使用内存划分一个程序占用的内存分为以下几个部分:1、全局区(静态区)(static)全局变量和静态变量存储的区域,程序结束后由系统自动释放。2、常量区常量存储的区域,程序结束后系统自动释放。3、堆区(heap)一般由程序员分配释放,若程序员不释放,程序结束时可能由操作系统回收(对于Java、C#而言)。...原创 2018-12-11 09:22:40 · 330 阅读 · 0 评论 -
多重循环性能优化
简述循环次数较多,循环层数较多时,程序效率问题非常明显。优化后的多重for循环可以提升大半的效率。方法一、实例化变量尽量放在for循环体外,只实例化一次。二、普通变量改为寄存器变量,如i++改为++i。前置递增运算避免了不必要的工作,它把值加1后直接返回改变了运算对象本身。三、条件比较使用<要快于<=,同理>要快于<=。四、把外层可以计算的尽可能放到外层;有判断...原创 2018-12-19 09:16:41 · 3564 阅读 · 0 评论 -
数据越界的巧妙利用,负数在计算机的存储方式
问题来源及应对FPGA模块进行高速信号处理,每隔固定的时间输出一组数据,但由于FPGA没有系统时间及时间戳的概念,在通信协议中用两字节长度记录数据的流水号,每输出一包数据,就在流水号上加一。上位机接收数据并依据流水号打上时间戳。两字节的流水号用unsigned short类型接收,范围就是0~65535,65535的后一包为65536,溢出后结果为0,就是65535序号的下一包序号为0。为了...原创 2019-01-24 14:42:25 · 1534 阅读 · 0 评论 -
泛型编程与模板元编程介绍(概念、优点)
写在前面今天来写点有点难度的东东:泛型编程与模板元编程。写这种生僻的东东我是比较排斥的,但谁让我看到boost库中专门对这两个东东分了个大类别呢。开始吧~概念不知道大家有没有过这种体验,学数学时整本书上的概念都背熟了,一碰到题目还是手足无措,不知从何下手。泛型和模板元编程这两个概念理解起来还是比较简单的:泛型编程,即把参数的数据类型作为一个参数传递到函数,本质上就是参数化类型。简单举个例...原创 2019-08-29 17:19:40 · 2709 阅读 · 0 评论