好吧,我开始从事像c ++和c这样的计算机编程。我对处理器结构有一个强烈的疑问,这使我能够更好地理解我的代码运行的位置。
所以,假设我编译了一个c ++程序。此时,它编译为汇编低级代码。此代码具有执行我的代码的处理器指令。由于每个处理器都有不同的指令集,我想知道我的代码将在何处运行。 就像,我在代码块编译我的程序。我怎么知道我是在为32位还是64位计算机编译它?我可以改变吗?两个32位处理器有什么区别,一个是i5,另一个是奔腾4? (我的代码会在两个处理器中运行吗?)
谢谢:)
答案 0 :(得分:5)
我如何知道我是否正在为32位或64位计算机编译它?
您必须在构建程序时告诉编译器。它可能有一些默认值 - 检查其文档。
我可以更改吗?
也许,这取决于你的编译器。如果它有必要的选项,那么是的。例如,clang
有一个-arch
标记。
两个32位处理器有什么区别,一个是i5,另一个是奔腾4?
如果两者都实现相同的指令集,那么它们实际上与编译软件的目的相同。但是,特定于机器的优化可能会在一个或另一个上更好地工作。
我的代码会在两个处理器中运行吗?
在你给出的例子的情况下,可能是的。