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 小时前
从小白开始的动态规划
c++·算法·动态规划
surtr11 小时前
【C++】RBTree(红黑树)模拟实现
数据结构·c++·算法·stl·map·红黑树·rbtree
zjkzjk77111 小时前
函数指针(Function Pointer)与 typedef int (*FuncPtr)(int, int);typedef与using(更推荐)
开发语言·c++·算法
余辉zmh1 小时前
【动态规划篇】:动态规划解决路径难题--思路,技巧与实例
c++·算法·leetcode·动态规划
一匹电信狗1 小时前
C++引用深度详解
c语言·开发语言·c++·visual studio
kdayjj9661 小时前
从基础到进阶:一文掌握排序、查找、动态规划与图算法的全面实现(C++代码实例解析)
c++·算法·动态规划
机器视觉知识推荐、就业指导3 小时前
Qt文本处理【正则表达式】示例详解:【QRegularExpression】
c++·qt·正则表达式
吃辣椒的年糕7 小时前
C++ 课程学习笔记:从对象生命周期看资源管理之道
java·c语言·开发语言·c++
钟离墨笺11 小时前
【c++】四种类型转换形式
开发语言·c++
汤姆和杰瑞在瑞士吃糯米粑粑11 小时前
【C++学习篇】C++11
开发语言·c++