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;
}
相关推荐
linweidong17 分钟前
C++大型系统中如何组织头文件和依赖树?
java·c++·架构
橘子师兄22 分钟前
C++AI大模型接入SDK—环境搭建
开发语言·c++·人工智能
偷星星的贼1128 分钟前
C++中的状态机实现
开发语言·c++·算法
程序员敲代码吗30 分钟前
C++中的组合模式实战
开发语言·c++·算法
王德博客1 小时前
【C++继承】笔试易错题目
开发语言·c++·继承
wen__xvn2 小时前
基础数据结构第08天:栈(实战篇)
数据结构·c++·算法
bkspiderx2 小时前
RabbitMQ 技术指南(C/C++版)
c语言·c++·rabbitmq
hetao17338372 小时前
2026-01-19~20 hetao1733837 的刷题笔记
c++·笔记·算法
梓䈑2 小时前
【Linux系统】实现线程池项目(含日志类的设计)
linux·服务器·c++
优雅的潮叭2 小时前
c++ 学习笔记之 volatile与atomic
c++·笔记·学习