之前在eXtremeDB上做個小測試,在這個測試中,爲eXtremeDB分配2G的內存,定義如下
#define DATABSE_SIZE 2*1024*1024*1024
發現內存分配不成功,經過檢查後才知道:
上述的定義在宏替換時會默認是int類型,而int類型的表達範圍爲:
-2*1024*1024*1024 ~ 2*1024*1024*1024-1
所以導致了內存的分配不成功,正確的定義應該爲:
#define DATABSE_SIZE 2*1024*1024*1024L
之前在eXtremeDB上做個小測試,在這個測試中,爲eXtremeDB分配2G的內存,定義如下
#define DATABSE_SIZE 2*1024*1024*1024
發現內存分配不成功,經過檢查後才知道:
上述的定義在宏替換時會默認是int類型,而int類型的表達範圍爲:
-2*1024*1024*1024 ~ 2*1024*1024*1024-1
所以導致了內存的分配不成功,正確的定義應該爲:
#define DATABSE_SIZE 2*1024*1024*1024L