当前位置: 华文星空 > 知识

最短的可以造成崩溃且编译器无法优化掉的 C++ 代码是什么?

2020-09-18知识

长度为0。

楼上各位给出的代码都十分精彩,但假如就「能过编译并生成可执行文件,并且可执行文件运行时会导致崩溃的代码」这一定义来说,最短的C++代码的长度是0,即空的".cc"文件。

操作过程如下(以linux命令行为例):

首先,创建空的".cc"文件。

$ touch empty.cc

之后用g++仅进行编译与汇编,而不进行链接。

$ g++ -c empty.cc

再用ld命令手动进行链接。

$ ld empty.o ld: warning: cannot find entry symbol _start; defaulting to 0000000000400078

最后运行可执行文件,得到Segmentation fault。

$ ./a.out Segmentation fault ( core dumped)


注:以上均为linux命令行,实际C++代码长度为0。