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;
}
相关推荐
ZhangShao06078 小时前
题解:AT_abc459_e
c++
chengO_o8 小时前
AVL树详解与实现(C++)
数据结构·c++·avl树·平衡二叉搜索树
玉树临风ives8 小时前
atcoder ABC 458 题解
数据结构·c++·算法
chengO_o8 小时前
STL关联式容器:map 与 set 的使用
c++·stl·set·map·平衡二叉搜索树
charlie1145141918 小时前
现代C++特性指南(5)——RAII 深入理解:资源管理的基石
开发语言·c++·现代c++
神仙别闹9 小时前
基于QT(C++)+Sqlite3实现单词消除游戏系统
c++·qt·sqlite
yunn_9 小时前
基于C++ 11的线程池实现
c++
人间乄惊鸿客10 小时前
c++自记录
java·开发语言·c++
MC皮蛋侠客10 小时前
C++17 多线程系列(一):线程基础——std::thread 完全指南
开发语言·c++·多线程
MC皮蛋侠客10 小时前
Perf 火焰图深度实战:CPU 性能分析与异常排查完全指南
linux·c++·性能分析·perf·火焰图