C++(20):通过[[likely]]和[[unlikely]]优化编译switch

C++20可以通过[[likely]]和[[unlikely]]告诉编译器,绝大部分情况会进入哪个case,很少情况会进入哪个case,从而帮助编译器进行优化:

cpp 复制代码
#include <iostream>
using namespace std;

int f(int a)
{
	int ret = 0;
	switch(a)
	{
	[[likely]] case 0:
		break;
	[[unlikely]] case 1:
		ret = 1;
		break;
	}
	return ret;
}

int main()
{
    cout<<f(0)<<endl;
    return 0;
}
相关推荐
_风华ts14 分钟前
C++智能指针
c++·智能指针
小冻梨66618 分钟前
ABC445 C - Sugoroku Destination题解
c++·算法·深度优先·图论·
白太岁19 分钟前
C++:(4) 内存布局、编译流程、关键字及其链接性
c语言·汇编·jvm·c++
白太岁34 分钟前
Muduo:(4) 主从 Reactor、事件循环、跨线程无锁唤醒及其线程池
c++·网络协议·tcp/ip
喜欢吃燃面1 小时前
基础算法:枚举(上)
c++·学习·算法
郝学胜-神的一滴1 小时前
计算思维:数字时代的超级能力
开发语言·数据结构·c++·人工智能·python·算法
兵哥工控1 小时前
mfc 线程启动、挂起、恢复、停止实例
c++·mfc·线程
xiaoye-duck1 小时前
《算法题讲解指南:优选算法-滑动窗口》--09长度最小的子数串,10无重复字符的最长字串
c++·算法
白太岁1 小时前
Muduo:(5) 主 Reactor 之 Acceptor 与 SubReactor 的分发
服务器·网络·c++·网络协议·tcp/ip
Non importa1 小时前
二分法:算法新手第三道坎
c语言·c++·笔记·qt·学习·算法·leetcode