c ,乙個分號照成的嚴重bug

2021-06-07 02:19:29 字數 486 閱讀 8349

公司最近一次迭代測試中,打包出來的程式在驗證問題單的時候發現沒有提交訊息到簡訊中心。

檢視模組日誌發現在共享記憶體處理上面有問題,導致n多業務不能完成。經過跟蹤到了乙個cpp檔案的某行。但是發現呼叫乙個檢查郵箱的函式就return false了

很是奇怪。經過掛gdb除錯也發現函式返回的是正確的值。而為什麼一出來就是錯誤的。當時就在想是不是棧指標錯誤了,亂了。難道是偏移差一點的原因。

在思考的同時去再次看**,竟然發現了這樣的東東。

if(rc_success == try_mail(tc_in_control.m_cl_forward, tc_in_msg));

發現問題,在最後乙個括號後面竟然有個; 相當於是空語句。

這樣不管函式返回值是什麼,都會執行return false.

我那個悲催啊。竟然就發生了。

不過還好,被找到了。。。。

×× 複製**的時候千萬要小心。。。

乙個分號引發的「血案」

再多的表情也無法詮釋我現在的心情!a b for matrices 這是很水的一道題,然而卻整整折騰了我2個多小時。從晚上6點多開始,花了沒幾分鐘就把 敲好了,可是資料一測,竟然不對,然後就開始找問題,找了很久,我竟然都還沒看出問題在哪,越找心裡越不爽,這麼做明明對的呀,一執行怎麼就錯了呢?一直到了...

C語言乙個微妙的Bug

1 include stdio.h 23 intarray 4 define total elements sizeof array sizeof array 0 56 void main 7執行結果是不列印true。解釋 total element所定義的值是unsigned int型別,因為si...

微軟的乙個BUG

各位,我不知道我的這個發現屬不屬於微軟的乙個bug round 1.225,2 1.23 round 1.245,2 1.25 round 1.265,2 1.26 round 1.285,2 1.28 按照技術文章上說的,vb中round 函式屬於四捨五入函式,但實際執行當中,其實round 函式...