c 中是否有一個存盤堆字大小的環境變數,或者至少有一個存盤系統型別的變數?例如,在 64 位系統中為 8(位元組),在 32 位系統中為 4(位元組)
uj5u.com熱心網友回復:
請注意,64 位系統可以執行 32 位二進制文??件,在這種情況下,sizeof(void *), sizeof(int), ... 將為 4,即使在 64 位系統上也是如此。
您可以使用 uname 系統呼叫(請參閱 uname -m)獲得一些額外的好處。對于 Intel,它將是 x86_64 (64) 或 i686(對于 32)。如果您只需要針對 Intel 的解決方案,則可以使用。您可以將其擴展到其他處理器(arm 等),但您需要對每個可能運行的平臺進行編碼。請參閱“機器”:https ://man7.org/linux/man-pages/man2/uname.2.html
為了使事情變得更復雜,您可能在 32 位作業系統下運行,而該作業系統在 64 位處理器(或某些虛擬化環境)下運行。在這些情況下,uname 將報告作業系統,而不是處理器。不清楚您要找的是哪一個。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/536609.html
標籤:C环境变量堆内存
