例如,使用size_t而不是unsigned int有沒有優勢?
int len1 = strlen(string);
爲size_t LEN1 = strlen的(字符串1)
是否使用的size_t使在存儲器中的編譯器行爲或代碼的運行時間或差的任何差異? 我完全知道差異,這在以前在另一個線程中得到了回答,但我擔心RAM的行爲。
例如,使用size_t而不是unsigned int有沒有優勢?
int len1 = strlen(string);
爲size_t LEN1 = strlen的(字符串1)
是否使用的size_t使在存儲器中的編譯器行爲或代碼的運行時間或差的任何差異? 我完全知道差異,這在以前在另一個線程中得到了回答,但我擔心RAM的行爲。
size_t
未簽名,而int
已簽名。此外,在某些平臺上,SIZE_MAX
可能會大於sizeof(int)
。因此,要生成便攜式代碼,您應該使用size_t
(請參閱第7.1.3.3節)。
數據類型:爲size_t
這是用來表示對象的大小的無符號整數類型。 sizeof運算符的結果是這種類型,並且函數(如malloc(請參閱Unconstrained Allocation)和memcpy (請參見複製字符串和數組)接受此類型的參數爲 指定對象大小。在使用GNU C庫的系統上,這將是 unsigned int或unsigned long int。
size_t
可存儲最大尺寸的陣列可以得到的,因爲它基本上可以得到那樣大的可尋址內存空間。
unsigned int
僅由其最小範圍(0至65535)定義,但可能更大。例如,你期望它在32位機器上是32位的。
因此,在生成的bin文件的內存**中會出現**差異(我正面臨着我的MC的內存限制)?感謝你的回答!! – Chaitanya