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;
}
相关推荐
程序猿编码26 分钟前
隐匿注入型ELF加壳器:原理、设计与实现深度解析(C/C++ 代码实现)
c语言·网络·c++·elf·代码注入
m0_734998011 小时前
Day 26
数据结构·c++·算法
Summer_Uncle2 小时前
【QT学习】Qt界面布局的生命周期和加载时机
c++·qt
小CC吃豆子2 小时前
C++ 继承
开发语言·c++
tankeven2 小时前
HJ151 模意义下最大子序列和(Easy Version)
c++·算法
fengenrong2 小时前
20260325
开发语言·c++
BestOrNothing_20152 小时前
从C++结构体、类到 PID 控制器:运动控制初学者如何理解 C++ 工程代码
c++·面向对象·pid·运动控制·.h与.cpp·struct与class
㓗冽3 小时前
2026.03.27(第三天)
数据结构·c++·算法
SWAGGY..3 小时前
【C++初阶】:(5)内存管理
java·c++·算法
liulilittle4 小时前
SQLite3增删改查(C
c语言·开发语言·数据库·c++·sqlite