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;
}
相关推荐
珹洺5 分钟前
C++AI多模型聊天系统(四)SSH反向隧道/虚拟局域网(VLAN)调用本地Ollama大模型
c++·人工智能·ssh
小π军5 分钟前
STL之multiset 常见API介绍
数据结构·c++·算法
同勉共进8 分钟前
并发编程系列(二)—— store, load 与 RMW
c++·arm·并发编程·x86·store·load·rmw
山甫aa8 分钟前
多叉树定义与遍历-----从零开始的数据结构
开发语言·c++·二叉树·多叉树
永远睡不够的入12 分钟前
C++11新特性(2):深入 C++ 参数传递黑盒:从引用折叠到完美转发,再到可变参数模板
开发语言·c++
无限进步_16 分钟前
【C++】寻找数组中出现次数超过一半的数字:三种解法深度剖析
开发语言·c++·git·算法·leetcode·github·visual studio
咸鱼翻身小阿橙21 分钟前
C++ 与 QML 交互入门笔记
c++·笔记·交互
南境十里·墨染春水22 分钟前
C++ 笔记 ——STL deque
开发语言·c++·笔记
j_xxx404_25 分钟前
我用 Codex 做了一个智能围棋机器人系统:从 AI 引擎接入到前后端联调的完整实战
c++·人工智能·python·机器人·软件工程·团队开发·react
minji...30 分钟前
Linux 网络套接字编程(五)TCP 回声服务器的实现(单进程(单线程)/多进程/多线程/线程池四个版本)
linux·服务器·开发语言·网络·c++·tcp/ip·算法