C/C++ 如何知道如何针对正确的体系结构进行编译

How does C/C++ know how to compile for the correct architecture?

本文关键字:体系结构 编译 C++ 何知道 何针      更新时间:2023-10-16

嗯,我从计算机编程开始,比如c++和c。我有一个关于处理器架构的强烈问题,它将使我能够更好地理解我的代码将在哪里运行。

所以,假设我编译了一个 c++ 程序。此时,它编译为程序集低级代码。此代码具有执行我的代码的处理器指令。由于每个处理器都有一组不同的指令,我想知道我的代码将在哪里运行。比如,我在代码块上编译我的程序。我如何知道我正在为 32 位还是 64 位计算机编译它?我可以更改它吗?两个 32 位处理器有什么区别,一个是 i5,另一个是奔腾 4?(我的代码会在两个处理器中运行吗?

谢谢:)

如何知道我正在为 32 位还是 64 位计算机编译它?

你必须在构建程序时告诉编译器。它可能有一些默认值 - 查看其文档。

我可以更改它吗?

也许,这取决于您的编译器。 如果它有必要的选择,那么是的。 例如,clang有一个-arch标志。

两个 32 位处理器有什么区别,一个是 i5,另一个是奔腾 4?

如果两者都实现相同的指令集,那么它们实际上等效于编译软件。 不过,特定于机器的优化可能会在其中一个或另一个上效果更好。

我的代码会在两个处理器中运行吗?

在您给出的示例的情况下,可能是的。