C++天才班

嗯~
雖然我不是一個以貌取「書」的人…
但這名字也太…

前天學長拿了一疊書來,其中有三本是圖書館借的
其中一本用C & DDraw寫小遊戲的,一本是C++基礎教學,而另一本就是「C++天才班(史帝芬‧戴維斯(Stephen R. Davix,) 作)」

說真的,在書架上看到,還真沒有動力想去翻
既然學長會挑上,應該不會雷到哪去吧~
看看目錄…
出現最多的單字「為什麼需要xxx?」(心底給它共鳴了一陣)
相信很多初學者也跟我一樣,看到xxx總是摸不著頭緒它為啥要出現?要怎麼用?
這本書就針對這種問題一一解答!

還指出一些寫程式常犯的錯誤,以及該如何去避免~
外加它使用的文字比較口語,但也並非廢言廢語,簡單來說,就是蠻平易近人的
沒看過的可以去看看哪!

我目前只看幾個主題,稍微提一下

#define 巨集
目前也偶爾動用到 #define
經它舉例之後,才發現可能有著嚴重的隱藏錯誤!

    #define df(a) a * a
   
    int main()
    {
       int i = df(2);
       // 此時 i == 4, 沒問題
      
       i = df( 1 + 2 );
       // 此時 i != 9, 問題大了!
    }

後者的算式可視為
    i = 1 + 2 * 1 + 2;

依照優先順序,變成
    i = 1 + (2 * 1) + 2;

所以 i 就等於 5 了!
恐怖啊!看到了整個心寒了一陣,大概知道為何以前有找不出來的問題了…Orz

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s