C/C++如何知道如何编译正确的架构?

3 c++ architecture assembly

好吧,我开始像c ++和c这样的计算机编程.我对处理器架构有一个强烈的疑问,这将使我能够更好地理解我的代码运行的位置.

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

谢谢 :)

Car*_*rum 5

我怎么知道我是在为32位还是64位计算机编译它?

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

我可以改变吗?

也许,这取决于你的编译器.如果它有必要的选项,那么是的.clang例如,有-arch一面旗帜.

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

如果两者都实现相同的指令集,那么它们实际上等同于编译软件的目的.但是,特定于机器的优化可能会在一个或另一个上更好地工作.

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

在你给出的例子的情况下,可能是的.