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;
}
相关推荐
不负岁月无痕13 小时前
C++ 模板核心内容与高频面试题汇总
java·开发语言·c++
无限进步_13 小时前
从零实现一个迷你Shell——深入理解Linux命令行解释器
linux·运维·服务器·开发语言·c++·chrome
fpcc14 小时前
工具使用——CMake中的函数和宏
c++·cmake
乐观勇敢坚强的老彭14 小时前
C++信息学奥赛lesson1
java·开发语言·c++
Irissgwe15 小时前
C++ STL关联式容器详解:set、multiset、map、multimap
开发语言·c++·stl·set·map·multiset·关联式容器
Irissgwe15 小时前
string类的模拟实现
c++·string
郝亚军15 小时前
Visual Studio 2022安装for C++桌面开发
c++·ide·visual studio
智者知已应修善业15 小时前
【51单片机初始化D5-D8亮,每按键按下D1到D4全亮,再按下恢复,如此循环】2024-3-26
c++·经验分享·笔记·算法·51单片机
为何创造硅基生物16 小时前
C++ 独占指针被销毁后,堆也会自己销毁
c++
C+-C资深大佬16 小时前
C++ 中的 constexpr与 const区
java·开发语言·c++