3

好吧,我开始学习像 c++ 和 c 这样的计算机编程。我有一个关于处理器架构的强烈问题,这将使我能够更好地理解我的代码将在哪里运行。

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

谢谢 :)

4

1 回答 1

5

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

当你构建你的程序时,你必须告诉编译器。它可能有一些默认值 - 检查它的文档。

我可以改变它吗?

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

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

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

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

在您给出的示例中,可能是的。

于 2013-01-27T04:32:00.053 回答