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;
}
相关推荐
6Hzlia9 分钟前
【Hot 100 刷题计划】 LeetCode 394. 字符串解码 | C++ 单栈回压法
c++·算法·leetcode
流年如夢37 分钟前
自定义类型进阶:联合与枚举
java·c语言·开发语言·数据结构·数据库·c++·算法
Little At Air40 分钟前
C++stack模拟实现
linux·开发语言·c++·算法
rayyy91 小时前
c++, sizeof(string)和string.size()有什么区别
c++
郭涤生2 小时前
C++ 回调较容易出错问题
开发语言·c++
yi.Ist2 小时前
2025CCPC郑州邀请赛
c++·学习·算法·acm
图码2 小时前
递归入门:从n到1的优雅打印之旅
数据结构·c++·算法·青少年编程·java-ee·逻辑回归·python3.11
大肥羊学校懒羊羊2 小时前
题解:计算约数个数
数据结构·c++·算法
ximu_polaris3 小时前
设计模式(c++)-结构型模式-装饰器模式
c++·设计模式·装饰器模式
Queenie_Charlie3 小时前
二叉树_
c++·二叉树·简单树结构