我似乎卡出了一个神奇的bug(也可能是UB)

学术版

编译器:clion捆绑g++。 环境: linux arm64 其他编译器下的表现还有待验证
by CC__DIAMOND @ 2024-04-10 22:46:04


`__builtin_clzll` ?
by rsg23 @ 2024-04-10 22:56:30


还有你那个 1ll 打成了 1l,输入过大当然 UB。
by strlen_s_ @ 2024-04-10 22:58:08


我知道这么写是不对的,但是运行这个程序cout有概率一直输出错误的数字。这看起来不是它应该有的行为
by CC__DIAMOND @ 2024-04-11 16:20:51


@[rsg23](/user/384498) \ 是的,这是gcc的函数,不在C++标准实现之列。
by CC__DIAMOND @ 2024-04-11 16:21:40


@[CC__DIAMOND](/user/636977) 我的意思是你应该用 __builtin_clzll 而不是 __builtin_clz
by rsg23 @ 2024-04-11 16:22:45


@[rsg23](/user/384498) \ 你说的对,但是我不是在探讨正确的程序会怎么写,而是为什么cout有那样的行为。
by CC__DIAMOND @ 2024-04-11 16:24:18


@[rsg23](/user/384498) \ 不过还是感谢你喵
by CC__DIAMOND @ 2024-04-11 16:24:41


@[CC__DIAMOND](/user/636977) 因为你写错了,我家编译器输出的虽然不对但也不是随机数
by rsg23 @ 2024-04-11 16:25:39


@[rsg23](/user/384498) \ 可能是我们环境不一样吧。以及我说的“输出随机数字”指的是不停的输出,效果类似于: ```cpp while (true) { cout << rand(); } ```
by CC__DIAMOND @ 2024-04-11 16:34:21


| 下一页