C 程式設計可能會忽視的乙個「小問題」

2021-04-22 01:48:38 字數 737 閱讀 7518

又好久沒寫blog了,最近一直忙工作的事情,倒不是說沒時間,而是沒什麼心思整理思路,這篇文章也不是什麼大不了的文章,但確實是我最近遇到的乙個問題,我在除錯乙個程式的時候時不時出現一些莫名其妙的問題,這些問題也就是那種無規律重現的非常棘手的bug,相信做過開發的人都深有體會。

當然我最後是fix了這些bug,對我這種高手而言,沒什麼修不了的錯誤,(哈哈)要的只是時間而已,但從中發現了乙個c++程式設計的小問題,哦,順便提一下,其實到最後對你造成困擾的都是小問題。言歸正傳,看**:

int main(int argc, char* argv)

程式實在簡單得沒法再簡單,我就不多說了,大家估計下結果,然後用自己的編譯器驗證一下,本人用的是vc++ 6.0,這是本人的執行結果:

[0.100000000000] [0.100000001490]

d1, d2 not equal!!

[0.100000000000] [0.100000000000]

press any key to continue

所以0.1和0.1f是不相同的,0.1f是float型,而0.1是double型,將0.1f賦值給double型的d2,就要發生型別轉換,運氣好的時候當然是沒問題,但我的運氣通常不會太好,也許你的編譯器不會出現問題,或者不是每次都出問題,我就不一一驗證了。

結論:所以給double賦值的時候直接寫我們常規的小數即可,不要畫蛇添足地加上「f」字尾,沒準哪天出問題了急得你焦頭爛額。

下次……下次……一定寫點好文章……

PHP一些可能會忽略的問題。。

1.echo和print的區別 php中echo和print的功能基本相同 輸出 但是兩者之間還是有細微差別的。echo輸出後沒有返回值,但print有返回值,當其執行失敗時返回flase。因此可以作為乙個普通函式來使用,例如執行下面的 後變數 r的值將為1。r print hello world ...

乙個簡單的測試可能會告訴我們很多的東西

乙個簡單的測試可能會告訴我們很多的東西。女主持人氣勢咄咄的問乙個男嘉賓,你為什麼那麼在乎錢,男嘉賓說 錢能買到一切 現場的觀眾譁然了。男嘉賓微笑的說 我們做個測試吧。乙個很簡單的主題,你的乙個仇人愛上了你的女友,現在想要你退出,你是乙個正常的人,你愛自己的女友。那個男人願意出一點錢來補償你。所有的觀...

shtml的乙個小問題

新建body.shtml 其 如下 我組成身體 然後建它引用的兩個 html 頁面,head.html 的 如下 我組成頭部 foot.html 和這個問題無關就不貼了,然後瀏覽器訪問 body.shtml 得到的頁面如下圖 恩,沒毛病!等等,怎麼在 我組成頭部 前面有個空格?檢視響應正文我們 看到...