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;
}
相关推荐
爱学习的梵高先生2 分钟前
C++:友元
开发语言·c++
星火开发设计9 分钟前
深度优先搜索(DFS)详解及C++实现
c++·学习·算法·计算机·深度优先·大学生·期末考试
郝学胜-神的一滴12 分钟前
Linux线程错误调试指南:从原理到实践
linux·服务器·开发语言·c++·程序人生
weixin_461769401 小时前
3. 无重复字符的最长子串
c++·算法·滑动窗口·最长字串
Morwit1 小时前
【力扣hot100】 312. 戳气球(区间dp)
c++·算法·leetcode
Q741_1471 小时前
C++ 栈 模拟 力扣 394. 字符串解码 每日一题 题解
c++·算法·leetcode·模拟·
阿闽ooo1 小时前
桥接模式实战:用万能遥控器控制多品牌电视
c++·设计模式·桥接模式
Wuliwuliii2 小时前
闵可夫斯基和、需存储的最小状态集
c++·算法·动态规划·闵可夫斯基和
驱动男孩2 小时前
c++新特性- 个人总结
c++·c++新特性
行稳方能走远2 小时前
Android C++ 学习笔记 2
android·c++