小编ers*_*re1的帖子

编译C++代码如何产生机器代码?

我正在使用网站learncpp.com学习 C++ 。第 0.5 章指出编译器的目的是将人类可读的源代码转换为机器可读的机器代码,由 1 和 0 组成。

\n

我编写了一个简短的 hello-world 程序并用于g++ hello-world.cpp编译它(我使用的是 macOS)。结果是a.out。它确实打印“Hello World”很好,但是,当我尝试在 vim/less/Atom/... 中查看时a.out,我没有看到 1 和 0',而是看到很多这样的内容:

\n
H\xef\xbf\xbdE\xef\xbf\xbdH\xef\xbf\xbd\xef\xbf\xbdX\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdH\xef\xbf\xbdE\xef\xbf\xbdH\xef\xbf\xbd}\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdH\xef\xbf\xbd\xef\xbf\xbdX\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdH9\xef\xbf\xbd\xef\xbf\xbd\n
Run Code Online (Sandbox Code Playgroud)\n

为什么内容a.out不只是机器代码所期望的 1 和 0?

\n

c++ compilation machine-code

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

标签 统计

c++ ×1

compilation ×1

machine-code ×1