gpt4 book ai didi

c - Clang 中 __int128_t 的错误?

转载 作者:太空狗 更新时间:2023-10-29 17:02:33 25 4
gpt4 key购买 nike

这段小代码用 GCC 和 Clang 编译,但给出不同的结果:

#include <stdio.h>

int main(){

__int128_t test=10;
while(test>0){
int myTest=(int)test;
printf("? %d\n", myTest);
test--;
}

}

对于 GCC,这是从 10 向下计数到 1,这是预期的行为,而对于 Clang,它一直计数为负数。对于 Clang,如果我将 test-- 替换为 test-=1,那么它也会提供预期的行为。

__int128_t 是 GCC 扩展,所以上面的结果只适用于非标准 C,所以 __int128_t 在 Clang 中可能是“使用风险自负”。

这是 Clang 中的错误,还是我犯了一些我没有发现的错误?

编辑: 我正在使用 gcc (MacPorts gcc48 4.8-20130411_0) 4.8.1 20130411(预发布)和 Apple clang 版本 4.0 (tags/Apple/clang-421.0.60)(基于LLVM 3.1svn)。

最佳答案

这是 Clang 中的一个错误,已在 Apple clang 版本 4.0 (tags/Apple/clang-421.0.60)(基于 LLVM 3.1svn)和 Apple LLVM 版本 4.2 (clang-425.0.28) (基于 LLVM 3.2svn),请参阅评论——感谢 Carl 和 H2CO3。

关于c - Clang 中 __int128_t 的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16447808/

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