技术栈

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访问
相关推荐
SoveTingღ
3 小时前
【问题解析】我的客户端与服务器交互无响应了?
服务器·c++·qt·tcp
温宇飞
3 小时前
内存异常
c++
挖矿大亨
6 小时前
C++中深拷贝与浅拷贝的原理
开发语言·c++·算法
Bruce_kaizy
6 小时前
c++图论——生成树之Kruskal&Prim算法
c++·算法·图论
雾岛听蓝
7 小时前
C++:模拟实现string类
开发语言·c++
XFF不秃头
7 小时前
力扣刷题笔记-合并区间
c++·笔记·算法·leetcode
编程之路,妙趣横生
7 小时前
STL(七) unordered_set 与 unordered_map 基本用法 + 模拟实现
c++
寂柒
7 小时前
c++--
c++
wregjru
8 小时前
【读书笔记】Effective C++ 条款3:尽可能使用const
开发语言·c++
历程里程碑
9 小时前
滑动窗口秒解LeetCode字母异位词
java·c语言·开发语言·数据结构·c++·算法·leetcode
热门推荐
01GitHub 镜像站点02从快手“12·22”直播攻击事件看:一次教科书式的业务层饱和攻击03Linux下V2Ray安装配置指南04Claude Code Skills 实用使用手册05电脑检测软件—图吧工具箱06jdk21下载、安装(Windows、Linux、macOS)07UV安装并设置国内源08【踩坑笔记】50系显卡适配的 PyTorch 安装092025-04-03 Latex学习1——本地配置Latex + VScode环境10SQLmap 完整使用指南:环境搭建 + 命令详解 + 实操案例