gpt4 book ai didi

c - 如何 #ifdef __builtin_prefetch 函数

转载 作者:行者123 更新时间:2023-11-30 14:59:26 24 4
gpt4 key购买 nike

如何将 __builtin_prefetch() 保留在我的代码中,但使没有它的编译器成功编译? (只是在发现它的地方什么也不做)。

最佳答案

__builtin_prefetch() 由编译器 (gcc) 而非预处理器识别,因此您将无法使用 C 预处理器检测到它。

由于带有两个前导下划线的标识符被保留供实现使用(因此您使用的任何定义此类标识符的代码都具有未定义的行为),因此我会以相反的方式进行操作。

#ifdef __GNUC__
#define do_prefetch(x) __builtin_prefetch(x)
#else
#define do_prefetch(x)
#endif

然后使用

do_prefetch(whatever);

在需要的地方。

这样,除非实际需要,否则不会发出任何代码。

由于 __builtin_prefetch() 接受可变数量的参数,因此您可能需要调整上面的内容以使用可变参数宏(C99 及更高版本) - 如果您在不同的地方使用不同数量的参数在您的代码中。

关于c - 如何 #ifdef __builtin_prefetch 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42747687/

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