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