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;
}
相关推荐
无限进步_15 分钟前
C语言实现贪吃蛇游戏详解
c语言·开发语言·数据结构·c++·后端·算法·游戏
CHANG_THE_WORLD19 分钟前
C++ vs Python 参数传递方式对比
java·c++·python
ULTRA??44 分钟前
C++实现右折叠
开发语言·c++
handsomezqh1 小时前
洛谷U611548 助教的比拼
c++·算法
小李小李快乐不已1 小时前
图论理论基础(4)
c++·算法·图论·迭代加深
崇山峻岭之间1 小时前
C++ Prime Plus 学习笔记025
c++·笔记·学习
bkspiderx1 小时前
C++操作符优先级与结合性全解析
c++·思维导图·操作符优先级·结合性
楼田莉子1 小时前
基于Linux的个人制作的文件库+标准输出和标准错误
linux·c语言·c++·学习·vim
繁华似锦respect2 小时前
单例模式出现多个单例怎么确定初始化顺序?
java·开发语言·c++·单例模式·设计模式·哈希算法·散列表
渡我白衣2 小时前
计算机组成原理(1):计算机发展历程
java·运维·开发语言·网络·c++·笔记·硬件架构