技术栈

C++(20):通过[[likely]]和[[unlikely]]优化编译switch

风静如云2023-11-06 19:22

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;
}
上一篇:【带头学C++】----- 三、指针章 ---- 3.6 二维数组与数组指针的关系
下一篇:python aiohttp异步多并发协程访问&多个依赖url访问
相关推荐
感哥
17 小时前
C++ lambda 匿名函数
c++
沐怡旸
1 天前
【底层机制】std::unique_ptr 解决的痛点?是什么?如何实现?怎么正确使用?
c++·面试
感哥
1 天前
C++ 内存管理
c++
博笙困了
1 天前
AcWing学习——双指针算法
c++·算法
感哥
1 天前
C++ 指针和引用
c++
感哥
2 天前
C++ 多态
c++
沐怡旸
2 天前
【底层机制】std::string 解决的痛点?是什么?怎么实现的?怎么正确用?
c++·面试
River416
2 天前
Javer 学 c++(十三):引用篇
c++·后端
感哥
2 天前
C++ std::set
c++
侃侃_天下
2 天前
最终的信号类
开发语言·c++·算法
热门推荐
01GitHub 镜像站点02UV 工具安装与国内镜像源配置指南03Claude Code 平替:OpenAI发布 Codex CLI ,GPT-5 国内直接使用0446个Nano-banana 精选提示词,持续更新中05UV安装并设置国内源06保姆级教程:手把手教你用Dify实现完美多轮对话(附Chatflow和提示词)07解决 WSL Ubuntu 中 /etc/resolv.conf 自动重置问题08A股预测还能更准?开源大模型Kronos带你跑通预测+回测全流程09Spec-Kit 使用指南10KGG转MP3工具|非KGM文件|解密音频