gpt4 book ai didi

c++ - 速度 : typedef vs #define in c++

转载 作者:行者123 更新时间:2023-12-01 14:35:52 26 4
gpt4 key购买 nike

最近我遇到了 typedef#define。尽管它们的用法相似,但其中一个是编译器 token ,另一个是预处理器 token 。

这让我想知道他们的运行速度,因为人们希望在竞争性编程中尽可能快。

那么,哪个比较快呢?附有答案的解释会很棒。使用的编译器是否会产生任何差异,例如 g++MSVC 编译器clang 编译器?

用例示例:typedef long long int;#define ll long long int

最佳答案

在性能上没有差异,但不推荐预处理器宏,因为它们会污染全局范围,因为与 typedef 不同,它们不能放在命名空间中。

但可以说,ll 的表现力不强;它可能会降低代码的可读性。考虑使用 int64_t 中的 <cstdint> 。这很好,因为它更具表现力(_t 清楚地表明它是一种类型,它的大小恰好是 64 位,因此是面向 future 的,即使 long long 是 128 位),并且相对简洁所以不需要 typedef 任何东西。

关于c++ - 速度 : typedef vs #define in c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61548611/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com