2、C語言中震肮,用scanf 為 unsigned char 變量賦值引發(fā)的神奇bug称龙。
環(huán)境Win10,VS2019钙蒙,CMake茵瀑。
全局變量 g_u8VehGear 為 unsigned char 型,因?yàn)檫@個類型簡寫為 uint8_t躬厌,我下意識地以%d作為格式控制马昨,為它賦值。如下:
scanf("%d", &g_u8VehGear);
賦值的結(jié)果很正常扛施,但神奇的bug出現(xiàn)了鸿捧,我定義的另外一個全局變量,被自動置零了8碓3着!
另一個完全不相關(guān)的全局變量被置零了妄荔!這是什么情況泼菌?!
這個bug害得我浪費(fèi)了大半天時間啦租,真是害人不淺哗伯。
然后我去查了查資料,如果要用 scanf 給 unsigned char 賦值篷角,不要用 %d 焊刹,要用 %hhu ,如下:
scanf("%hhu", &g_u8VehGear);
至于這個bug的原因恳蹲,我還沒找到虐块,在網(wǎng)上也沒搜到和我相同的問題。
1嘉蕾、Linux下贺奠,QT編寫的界面程序無法顯示菜單欄。
原因:Ubuntu系統(tǒng)自帶的菜單欄顯示默認(rèn)在左上角
解決方法:直接改設(shè)置就可以了错忱。
效果如下:
學(xué)習(xí)自:https://blog.csdn.net/weixin_43053387/article/details/88618091