小编MrK*_*att的帖子

clang++ 编译无法访问的函数,g++ 则不会

我在 Instagram 上看到了这个表情包,内容是关于一些 C++ 代码,这些代码不应该输出任何内容,但却输出了任何内容。代码是:

#include <iostream>

int main() {
    while (1)
        ;
}

void unreachable() {
    std::cout << "Hello World!" << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

c++meme 发布

我用 clang 编译了它,如 meme 中所示,并得到了相同的结果 ( Ubuntu clang version 14.0.0-1ubuntu1.1),但使用 gcc 编译的相同代码执行了您所期望的操作:什么都没有 ( g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0)。

我想知道为什么 clang 会做不同的事情,以及如果我从不从主函数调用它,那么如何破解无法访问的函数是如何执行的。

c++ g++ clang++

1
推荐指数
1
解决办法
544
查看次数

标签 统计

c++ ×1

clang++ ×1

g++ ×1