我試圖編譯一個64位計算機上下面的程序編譯C++與控制檯:問題在Linux上
#include <cstdio>
int main() {
float a,b,c;
a = 10.5;
b = 20.6;
c = a + b;
printf("%d \n", c);
return 0;
}
我有以下控制檯命令進行編譯:
g++ -m32 file.cpp
當我執行a.out文件是這樣的:
./a.out -m32
結果我得到的是這樣的:
-1610612736
這是怎麼回事?我究竟做錯了什麼?編譯時如果沒有-m32標誌,我會得到假結果。海灣合作委員會採取同樣的方式
%d是打印有符號整數,則需要%F打印浮動。 – Joe
你應該養成總是用警告啓用的習慣,至少是'-Wall'標誌。這會使'g ++'警告該格式代碼錯誤。警告是技術上正確的東西,但仍然不太正確,並且會經常告訴您有關代碼中的未定義行爲(如此類)。 –
此外,您不會將'-m32'標誌傳遞給程序。這只是編譯器(可能不是你真正想要的,只是拋棄它)。 – BoBTFish