C++ do_div 宏

cpp 复制代码
#define do_div(n, base) ({ \
    uint32_t __base = (base); \
    uint32_t __rem; \
    __rem = ((uint64_t)(n)) % __base; \
    (n) = ((uint64_t)(n)) / __base; \
    __rem; \
})

用法:

cpp 复制代码
u64 ns = 1234567890;
u32 remainder_ns;
remainder_ns = do_div(ns, 1000000);
// 执行后:ns 被修改为商 (1234),remainder_ns 为余数 (567890)
相关推荐
垆边人似月.23 分钟前
华为机考题:二叉树的最大路径和
c语言·c++
2601_9622186143 分钟前
深入理解C++中的thread_local线程局部变量的应用
开发语言·c++
无名猿1 小时前
C++ lambda 捕获列表详解:值捕获、引用捕获、初始化捕获与悬垂引用
c++·现代c++·语法基础·踩坑记录
lengxuenong2 小时前
枚举例题分析
c++·算法·青少年编程
繁华的地方不一定留下你的脚印2 小时前
C++线程如何安全停止与唤醒:std::jthread、stop_token与condition_variable
开发语言·c++
沫璃染墨3 小时前
《从零入门Linux系统篇(五十一):线程篇·四——pthread线程库详解:从线程创建到终止与分离》
linux·运维·服务器·开发语言·c++·系统架构·线程
shada3 小时前
CMake指定 MSVC 工具集与 Windows SDK
c++·windows
垆边人似月.3 小时前
华为机考题:矩阵中的最长递增路径
c语言·c++
A7bert7774 小时前
【SAM3部署至AGX Orin】环境配置→模型部署→问题记录
c++·人工智能·深度学习·ubuntu
longlongzihan4 小时前
LeetCode 56合并区间:排序与贪心
c++·算法·leetcode