1樓:朱涵俊
引數傳遞區別很大,32是用棧,64是先用暫存器。雖然這是彙編的內容,但c總免不了要跟彙編接觸。還有浮點,32位是float計算快,64位應該用double。
float會轉換成double,計算完成再轉回float,反而慢。
2樓:陳碩
呼叫 C 語言的 variadic function,傳 NULL 引數要特別小心。因為 0 只會 promote 到 int,不會 promote 到 long,因此需要 cast。
例如 execl("/bin/ls", "ls", "-l", NULL); 在 32-bit 下是正確的,但是在 64-bit 下可能是錯的。
最好寫成 execl("/bin/ls", "ls", "-l", (char*)NULL);
3樓:向晨
說乙個冷一點的。
有些函式以及浮點運算,要求有align 方式,典型RISC cpu的系統,對align要求比較嚴格。
align按照32位位址對齊或者按照64位位址對齊,如果沒有對齊,處理器可能陷入某種exception,從而影響處理效率。。
64位作業系統跟32位比有什麼區別?
普通IT技術人員 說作業系統32 64位的區別,就不得不說,cpu硬體的位數區別,主要是硬體工藝的問題。32位CPU指的是該CPU在單位時間內能一次處理的二進位制數的位數為32位 64位CPU指的是該CPU在單位時間內能一次處理的二進位制數的位數為64位 而作業系統位數是針對cpu的位數而開發出來的...
64位CPU與32位CPU效能有什麼差距?
freeman 64位系統,主要優勢是 1 採用64位定址方式,支援更大的定址空間。2 處理64位整數更快。3 有更多的通用暫存器,和增強指令集可用。但其實也造成了不少浪費 1 多數應用32位整數足夠用了。其實只需要增加一點64位運算支援就行了,不必要全部暫存器都公升到64位。2 指標占用 記憶體對...
C 如何跨平台判斷作業系統是32位還是64位?
WhatIsSpin 題主你這問題,成心折騰程式設計師。首先得說明一下,不呼叫系統API,又想知道與系統相關的東西,這就像你讓我進門拿東西,又把門鎖上不給我鑰匙一樣,正統方法是根本不可能做到的 且不深究這麼做有什麼意義,本來乙個很簡單的函式就能解決的問題繞個圈 那就得走曲道破窗而入。其次是跨平台不是...