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;
}
相关推荐
思麟呀1 小时前
BTree的原理与 C++ 完整实现
c语言·数据结构·c++·算法·1024程序员节
jimy11 小时前
C++ 中 xvalue 的 identity 存在哪里?和 lvalue 的 identity 有什么区别?
开发语言·c++·1024程序员节
xiaoye-duck2 小时前
《C++ 项目:手写大模型接入 SDK》Provider分析与实现
开发语言·c++·语言模型
会编程的小孩2 小时前
qt_day1
c++
INGNIGHT3 小时前
377.组合总和 Ⅳ(背包)
c++·算法·1024程序员节
凉茶钱3 小时前
stack、queue、priority_queue、容器适配器完整梳理
开发语言·c++·queue·1024程序员节·stack
wuminyu3 小时前
JVM规范学习总结-Java源码经过javac编译后产物
java·linux·c语言·jvm·c++
蹊黎3 小时前
C++中stack、queue、priority queue类的部分简单实现
数据结构·c++·visualstudio·1024程序员节
攻城狮Soar4 小时前
详解volatile
开发语言·c++·1024程序员节
東隅已逝,桑榆非晚4 小时前
搜索二叉树
c++·笔记·学习·1024程序员节