vc編程中常見問題

來源:互聯網
上載者:User

1.  if 判斷的條件陳述式的書寫:

                if ( flag = TRUE )

               {...

               }

               一個判斷語句犯了三個致命錯誤:判斷語句中判別式用"=="而不是"="; 判別語句順序反了,應該把判定變數放在判定語句後面;判定語句中就不能把布爾變數與TRUE/FALSE判別!所以,正確寫法是:

                if ( flag )

               {...

               }

2. 資源ID定義:

         resource.h檔案中定義了各種資源的ID號, 例如: 菜單,工具列,對話方塊等. 當對話方塊等資源被刪除了,resource.h檔案中定義的資源ID號並不會被VC自動刪除,需要程式員手動完成這項工作;

         在不同對話方塊中, 可以有相同的資源ID.例如, DIALOG_APP1和DIALOG_APP2都有一個BUTTON控制項, 都可以定義為BTN_OPEN_FILE,這並不會影響程式的正常運行; 但必須保證在同一個對話方塊中不能發生ID定義衝突, 否則程式運行時可能發生錯誤的訊息相應.例如, 在對話方塊DIALOG_APP1中兩個BUTTON都定義為BTN_CLICK, 但你希望第一個相應訊息函數BtnOpenFile(), 第二個相應訊息函數BtnSaveFile(),  但不幸的是,程式會調用BtnSaveFile().

3. 不應預設if 判斷條件陳述式的執行順序是固定的由前到後或由後到前:

  例如:

     CSomeClass* pV;

    //......為pV指標賦值

     if (  NULL!=pV && pv->GetCount()>0 ) {...}//程式運行期間可能會出錯

很多人會問,我已經先判斷指標不為空白才執行pV->GetCount()函數,所以不會有錯. 可是, 在程式運行時, 不一定先執行NULL!=pV .所以應該修改為:

if   ( NULL!=pV ){

  if (   && pv->GetCount()>0 ) {...}

}

4. 在變數定義的同時,必須為變數賦值:

  很多程式員在函數體中不為臨時變數賦初始值,可在後續的語句中又對變數的值進行使用而造成預料不到的後果。例如:  int i;

                      if (條件1){ i=0;}

                     if (條件3){i=1;}

                     if (0==i){...}

                     else {...}//本以為i為3才執行此段代碼,可事實上i=4時也執行此段代碼。

               

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.