
#头文件
一念之卓
这个作者很懒,什么都没留下…
展开
-
整型和浮点类型的转换,int与float,double互转的快速实现(在没有对应的汇编指令情况下)
如果没有类型转换对应的汇编指令,我们可以用浮点加法来完成整型和浮点类型的互转。如果有对应的汇编指令,调用之明显更简单高效,然而有些情况下类型转换会溢出,这要注意,计算机不会检查溢出而返回错误结果。一般来说,一次整型和浮点类型的互转的消耗和浮点加法一样,实际就是用浮点加法实现的类型转换。代码如下(不解释):typeconvert.h#include <stdint.h>//以下所有实现经过了严格测试,可以保证无误。其中,标准实现不会溢出,而用指令转换可能溢出。/** * 转原创 2020-09-23 16:56:19 · 2406 阅读 · 0 评论 -
C/C++ 多线程编程之信号量及其实现代码 semaphore类
仅仅用于多线程同步,不考虑互斥,即不存在共享数据的竞争,我们应该使用信号量,信号量比条件变量高效得多,更利于控制多线程同步,如果要用条件变量模拟信号量,则不得不考虑很多细节。不应该使用信号量代替互斥锁的功能。 千万不要误以为用条件变量和互斥锁可以简单地实现一个信号量,这样实现的信号量很可能不能正常工作。一般而言,Windows下是用信号量实现的条件变量,所以信号量更接近于底层。下...原创 2019-10-06 21:07:01 · 1153 阅读 · 0 评论