double c中遇到的問題

2021-04-12 20:55:54 字數 1659 閱讀 2726

今天用vc6.0和visual studio 2005分別執行了opengl紅寶書中的事例**double.c,遇到了一些簡單但是

我感覺很有用的東西。下面我簡單的說一下。

第一件事情是有關 glclear()的使用.由於疏忽,我開始敲入**時將 glclear()誤輸成了glclearcolor()(呵呵,娃

娃偷懶直接粘過來的),結果執行時就發現原本應改是乙個白色的正方形在螢幕上進行旋轉變成了乙個正方形旋轉

成了乙個原盤. 娃娃想了半天才感覺到好像是顏色緩衝區沒有進行清理,回來和事例**比對,發現了情況,改正

後,執行的效果和預期的一樣。

第二件事情是關於stdlib.h的。

首先,我用的是vc6.0建立了乙個工程進行編譯,由於我的疏忽,沒有加進#include

,結果編輯器報錯:

f:/ide/vc6.0/myprojects/double/double.c(52) : error c2065: 'null' : undeclared

identifier

f:/ide/vc6.0/myprojects/double/double.c(52) : warning c4047: 'function' : 'void

(__cdecl *)(void )' differs in levels of indirection from 'int '

f:/ide/vc6.0/myprojects/double/double.c(52) : warning c4024: 'glutidlefunc' :

different types for formal and actual parameter 1

執行 cl.exe 時出錯.

我在google上搜尋了一下,發現沒有加進#include ,加進這行**後問題解決。

然後,我又試著用visual studio 2005建立了乙個工程編譯了一下,結果竟然又報錯:

error    1    error c2381: 'exit' : redefinition; __declspec(noreturn) differs   

f:/ide/vc#2005/vc/include/stdlib.h    406   

我在google上搜尋了一下,發現是由於我加進了#include 的原因,刪除這行**

後問題解決。當時我差點暈倒,因為一樣的程式,在不同的編輯器上竟然因為同一行**產生

了截然不同的編譯結果。

通過這個例子我發現對於錯誤我們應該看到它的好的一面,通過glclear()的錯誤我深刻

的理解了glclear()的功能和glutdisplayfunc(display)工作方式,同時特感覺到了同一段程

序不同在不同編輯器應該區別對待,特別是細節上尤其要重視,我在此之前就因為這些細節問題

而無法使程式順利的編譯執行而苦惱了好長時間。

也許有人會問我幹嘛非得同時用vc6.0和visual studio 2005。我是這樣想的,一方面

vc6.0在我周圍相當的普及,很多電腦上都安裝了它,如果我很熟悉它,那麼當我需要時我可

以很方便的找到機器使用,另一方面,microsoft在2001就發布了最後一期對vc6.0支援的

msdn,全力轉向了對.net和visual studio的支援上,這是大的趨勢,我應該順應這個趨勢,以

能夠在以後很好的適應可能遇到的工作上的需要。

面試中遇到的問題

ado activex data objects 是乙個用於訪問資料來源的 com元件 應用程式介面 應用程式和底層軟體互動控制的聯絡方法 超文字置標語言 英文 hypertext markup language 簡稱為 html 什麼是 超檔案傳輸協議 是網際網路上應用最為廣泛的一種網路傳輸協議。...

php中遇到的問題

warning mktime expects parameter 4 to be long,string given in e wwwroot chinesesunfish install install.php on line 238 win2003的時期格式和php的格式不大一樣 所以 post...

Qt 中遇到的問題

在centos 5.4 64b 中安裝qt sdk linux x86 64 opensource 2010.03.bin 一 在welcome不顯示例子程式 且 編譯例子程式時 no valid qt version set.set one in tools options 解決 tools op...