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;
}
相关推荐
一拳一个呆瓜11 小时前
【STL】文件系统导航
c++·stl
All for pursuit.11 小时前
【动态规划-21】312.戳气球
数据结构·c++·算法·leetcode·动态规划
栈帧之外12 小时前
【C++】STL之set
开发语言·c++
zhanghaha131413 小时前
C++构造函数的一些其他应用(逐词逐句保姆讲解)
c++
jimy114 小时前
c++的 Type Traits (二、更详细版本)
开发语言·c++
半杯咖啡半行码16 小时前
C++11核心特性详解:从C++11到C++20 的现代C++指南
开发语言·c++
All for pursuit.17 小时前
【位运算-3】136.只出现一次的数字
数据结构·c++·算法·leetcode
C++ 老炮儿的技术栈18 小时前
std::atomic 是什么
linux·c语言·网络·c++·visual studio
All for pursuit.19 小时前
【完结】LeetCodeHot100题 详细解题过程及代码汇总
数据结构·c++·算法·leetcode
重生之小比特19 小时前
【算法拾光】双指针|移动零 + 复写零
数据结构·c++·算法