寫一些代碼,我想出一個數據緩衝,這將有利於通過提供的緩衝區的最大大小頭:避免宏單獨的聲明從執行
#define MAXIMUM_BUFFER_SIZE (SIZE_MAX - 1)
但是最大的缺點我看到在這裏(除了預處理器的混亂)是最大尺寸實際上是實現特定的,並且可能會改變。如果其他代碼依賴於舊標題,但是新實現或其他方式,則可能會中斷。因此,我想通過在頭文件中聲明一個函數
size_t maximumBufferSize();
並在相應的實現文件中提供一個實現。我不關心運行時,特別是因爲值仍然是一個常量,只需要計算一次,如果需要的話可以存儲在其他代碼文件的其他位置。
所以我的實際問題是:對於這兩種方法,我是否還有其他的優缺點,我必須考慮?還有第三種方法可以達到相同的效果,也許更好?
什麼是'SIZE_MAX'?你在哪裏定義它? – RoiHatam
@RoiHatam'SIZE_MAX'是最大的值,可以存儲在'size_t'中。它在「stdint.h」中定義。 – Shakatir
你如何期待**'SIZE_MAX' **無需重新編譯即可更改:D –