gpt4 book ai didi

c - #define 在 C 中的效率

转载 作者:行者123 更新时间:2023-12-02 06:14:26 24 4
gpt4 key购买 nike

我是 C 的新手,想知道哪种编程方式更有效或更受欢迎:

选项 A:

#define flag true

void Foo()
{
for (size_t i = 0; i < veryBigNumber; i++)
{
if (flag)
doSomething1();
doSomething2();
}
}

选项 B:

#define flag

void Foo()
{
for (size_t i = 0; i < veryBigNumber; i++)
{
#if defined(flag)
doSomething1();
#endif
doSomething2();
}
}

最佳答案

除非您使用的是非常陈旧/愚蠢的编译器,否则它们应该是等效的。#if 保证在编译时进行评估,但是任何现代编译器也会在编译时评估带有整数常量 的常规if


(无论如何,您距离自己找出答案只有一步之遥。只需在 veryBigNumber 中放入一个非常大的数字,并对两个变体分别计时。如果非常大的数字真的非常大(数百万、数十亿),即使是外部计时(time ./a.out 来自命令行)也应该给你相当可靠的计时。)

关于c - #define 在 C 中的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42202154/

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