C语言优化的方法

news/2025/3/15 2:38:34/

C语言优化的方法

内部或嵌套循环,调用第三方库的方法通常是导致程序运行缓慢的最主要的起因。

整形数

如果我们确定整数非负,就应该使用unsigned int而不是int。

register unsigned int variable name;

整形in的运算速度高浮点型float,并且可以被处理器直接完成运算,而不需要借助于FPU(浮点运算单元)或者浮点型运算库。

除法和取余数

除法函数消耗的时间包括一个常量时间加上每一位除法消耗的时间。
可以通过乘法表达式来替代除法。
例如,假如我们知道b是正数并且b*c是个整数,那么(a/b)>c可以改写为a>(c * b)。如果确定操作数是无符号unsigned的,使用无符号unsigned除法更好一些,因为它比有符号signed除法效率高。

合并除法和取余数

过调用一次除法操作返回除法的结果和余数。
如果既需要除法的结果又需要余数

int func_div_and_mod (int a, int b)
{return (a / b) + (a % b);
}

通过2的幂次进行除法和取余数

使用移位操作来执行除法。

typedef unsigned int uint;
uint div32u (uint a)
{return a / 32:
}int div32s (int a)
{return a / 32;
}

取余数操作符来提供算数取模。

//输入的count结余0至5

http://www.ppmy.cn/news/991338.html

相关文章

细讲TCP三次握手四次挥手(四)

常见面试题 为什么TCP连接的时候是3次?2次不可以吗? 因为需要考虑连接时丢包的问题,如果只握手2次,第二次握手时如果服务端发给客户端的确认报文段丢失,此时服务端已经准备好了收发数(可以理解服务端已经连接成功)据…

Linux安装wget

1.第一步登录wget官网下载地址,下载最新的wget的rpm安装包到本地 官网地址:http://mirrors.163.com/centos/7/os/x86_64/Packages/ 2.将下载好的wget的rpm安装包通过Xftp工具上传到Linux服务器对应目录下。 3.cd命令进入到这个wget目录下,再…

redis之Bitmap

位图数据结构其实并不是一个全新的玩意,我们可以简单的认为就是个数组,只是里面的内容只能为0或1而已(二进制位数组)。 GETBIT用于返回位数组在偏移量上的二进制位的值。值得我们注意的是,GETBIT的时间复杂度是O(1)。 GETBIT命令的执行过程如…

DPN(Dual Path Network)网络结构详解

论文:Dual Path Networks 论文链接:https://arxiv.org/abs/1707.01629 代码:https://github.com/cypw/DPNs MXNet框架下可训练模型的DPN代码:https://github.com/miraclewkf/DPN 我们知道ResNet,ResNeXt,D…

SpringBoot统一异常处理和统一返回格式

上篇博客我们讲解了使用AOP来进行统一的用户登录判断,其实像这种功能统一且使用较多的地方,都可以用AOP来处理,除了统⼀的⽤户登录判断之外,AOP 还可以实现: 统⼀⽇志记录统⼀⽅法执⾏时间统计(在性能优化…

建造者设计模式 + 高阶函数 => DSL

该设计模式适用于创建复杂对象,该复杂对象通常是由各个部分的子对象用一定的算法或者步骤构成,针对每个子对象内部算法和步骤通常是稳定的,但是该复杂对象的确实由于不同的需求而选择使用不同的子对象进行组装。对于构建该复杂的对象&#xf…

MD-MTSP:成长优化算法GO求解多仓库多旅行商问题MATLAB(可更改数据集,旅行商的数量和起点)

一、成长优化算法GO 成长优化算法(Growth Optimizer,GO)由Qingke Zhang等人于2023年提出,该算法的设计灵感来源于个人在成长过程中的学习和反思机制。学习是个人通过从外部世界获取知识而成长的过程,反思是检查个体自…

阿里用户序列建模MIMN

Practice on Long Sequential User Behavior Modeling for Click-Through Rate Prediction 摘要 对于序列建模,实践了机器学习算法与在线服务协同设计的CTR预测系统,理论上可以处理无限长的用户序列。 从服务系统的角度来看,通过设计一个单…