記一次bug size t x64引起的

2021-06-22 05:03:39 字數 451 閱讀 9364

環境:win7+vs2012, **如下:

#include void func(int &n)

int main(int argc, char *argv)

我們知道size_t在win32下是4個位元組,在x64下是8個位元組。

在win32下這樣寫是沒什麼問題的;

但是在x64下得到的結果是:0xcccccccc0000000a

然後我們再把:

size_t n;

改為:size_t n = 0;

執行下結果又對了。

原因是size_t n預設將其初始化為0xcccccccccccccccc

賦值的時候只將低位的4個位元組賦值所以得到0xcccccccc0000000a

所以在使用size_t與其他型別轉型的時候一定要注意了,千萬不要這樣寫!!!

記一次除錯

這是我最近幾個月來遇到的最棘手的乙個問題 昨天花了4個小時找出第一層次的原因 這個糾結啊,本來和老婆說好準時下班回家吃飯的,結果被這個問題拖了老久。這是乙個gradle的plugin,用來resolve公司內部的dependency的,弄完了跑測試專案的,拋乙個npe,而且npe還不在自己的 裡面。...

記一次 EqualsAndHashCode的疑惑

lombok的使用真的是讓開發人員欲罷不能,乙個 data不管有多少屬性全部搞定,以後加字段也不用從新生成get和set方法。不過這裡還是有乙個小坑需要注意一下,舉個例子 public class equalsandhashcodetest data noargsconstructor access...

記一次除錯

這是我最近幾個月來遇到的最棘手的乙個問題 昨天花了4個小時找出第一層次的原因 這個糾結啊,本來和老婆說好準時下班回家吃飯的,結果被這個問題拖了老久。這是乙個gradle的plugin,用來resolve公司內部的dependency的,弄完了跑測試專案的,拋乙個npe,而且npe還不在自己的 裡面。...