各种c ++编译器的歧义行为

问题描述 投票:-4回答:1

当您在Leetcode上将-ve数字左移时,它将显示运行时错误,如以下屏幕截图所示leetcode compiler output

现在对于GeeksForGeeks IDE上的相同代码,它可以很好地工作,如下所示GFG IDE Output on same code

当我在代码块IDE上提交相同的代码时,观察到相同的行为。我的问题是,为什么输出中存在这种歧义。请帮助,我在sof的c ++中阅读了有关左移的各种帖子后感到非常困惑。详细的说明会有所帮助。

c++ bit-manipulation bit-shift
1个回答
1
投票
在C,C ++,Objective-C中,存在“未定义的行为”和“实现定义的行为”。

“ undefined behaviour”表示

anything


0
投票
正如其他人回答的那样,在C ++标准中,将负号左移是未定义的行为。不同的编译器将不同地对待未定义的行为。
© www.soinside.com 2019 - 2024. All rights reserved.