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;
}
相关推荐
Fuyo_11196 分钟前
带你了解C++的类与对象(中)
c++
小苗卷不动15 分钟前
UDP服务端收发流程
linux·c++·udp
Xiu Yan27 分钟前
Java 转 C++ 系列:函数模板
java·开发语言·c++
小苗卷不动44 分钟前
OJ练习之加减(中等偏难)
c++
我能坚持多久1 小时前
String类常用接口的实现
c语言·开发语言·c++
智者知已应修善业1 小时前
【数字稳压控制DAC/TLC5615驱动】2023-5-27
c++·经验分享·笔记·算法·51单片机
t***5441 小时前
Orwell Dev-C++和Embarcadero Dev-C++哪个更稳定
开发语言·c++
代码中介商1 小时前
C++运行时多态深度解析:从原理到实践
开发语言·c++·多态·虚函数
代码中介商2 小时前
C++ 继承与派生深度解析:存储布局、构造析构与高级特性
开发语言·c++·继承·派生
谭欣辰2 小时前
C++ 控制台跑酷小游戏2.0
开发语言·c++·游戏程序