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;
}
相关推荐
zephyr0511 小时前
深入浅出C++多态:从虚函数到动态绑定的完全指南
开发语言·c++
码力码力我爱你11 小时前
C++静态变量依赖关系
java·jvm·c++
加勒比之杰克12 小时前
【C++11】Lambda 表达式、可变参数、emplace_back 系列
开发语言·c++·lambda·emplace_back·可变参数模版
Bona Sun12 小时前
单片机手搓掌上游戏机(十一)—esp8266运行gameboy模拟器之硬件连接
c语言·c++·单片机·游戏机
思成不止于此12 小时前
【C++ 数据结构】二叉搜索树:原理、实现与核心操作全解析
开发语言·数据结构·c++·笔记·学习·搜索二叉树·c++40周年
蜉蝣之翼❉12 小时前
opencv c++ 修改加载图像大小限制
c++·opencv·webpack
爪哇部落算法小助手12 小时前
每日两题day50
数据结构·c++·算法
curry____30313 小时前
基本算法(2025.11.21)
c++·算法
tan180°14 小时前
Linux网络TCP(上)(11)
linux·网络·c++·后端·tcp/ip
橘子真甜~14 小时前
C/C++ Linux网络编程6 - poll解决客户端并发连接问题
服务器·c语言·开发语言·网络·c++·poll