今天在分塊讀取檔案內容時,犯了乙個低階錯誤
本來是想把塊的大小定義成4m,然後想當然的寫成:
#define sectionsize 4*1024*1024
結果可想而知。。。
在求某檔案塊的數量時,需要用到此資料
然後long leftsize = filesize % sectionsize;
long sectioncount = filesize / sectionsize + leftsize>0?1:0;
悲劇發生了。。。
這個leftszie得到的結果顯然不是我們想要的資料,變成了
long leftsize = filesize % 4*1024*1024;
以後一定要記得定義這樣的巨集的時候加括號
#define sectionsize (4*1024*1024)
巨集定義的巨集展開錯誤
巨集定義自身的缺陷是指巨集展開錯誤,主要是由於運算子優先順序等原因,使得巨集展開後的語義與餘項發生偏差。define max a,b a b?a b define mul a,b a b int main int x 4.y 3 int max max x,y 2 int product mul x...
jtabel新增資料時犯的低階錯誤
jtable新增資料,老是新增的不對,如下圖 最後發現時讀取的資料拆分不正確,是特殊字元,不能作為regx拆分string,所以split 不起作用 還有變數的作用域也很特別,如下 while str bfr.readline null vector rowdata new vector syste...
列印錯誤資訊的巨集定義
ifndef errmacros h define errmacros h include ifdef debug define debug print do while 0 else define debug print void 0 endif define error handler err ...