• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            天行健 君子當自強而不息

                 摘要: C++ARM中解釋說type-safe linkage并不能100%的保證類型安全。既然它不那100%的保證類型安全,那么它就肯定是不安全的。統計分析顯示:即便在很苛刻的情況下,C++ 出現單獨的O-ring錯誤的可能性也只有0.3%。但我們一旦將6種這樣的可能導致出錯的情況聯合起來放在一起,出錯的幾率就變得大為可觀了。在軟件中,我們經常能夠看到一些錯誤的起因就是其怪異的聯合。OO的一個主要目的就是要減少這種奇怪的聯合出現。  閱讀全文
            posted @ 2007-09-27 10:59 lovedday 閱讀(433) | 評論 (0)編輯 收藏
                 摘要: 【P&S 94】中提到對于類型安全的檢測來說有兩種假設。一種是封閉式環境下的假設,此時程序中的各個部分在編譯期間就能被確定,然后我們可以對于整個程序來進行類型檢測。另一種是開放式環境下的假設,此時對于類型的檢測是在單獨的模塊中進行的。對于實際開發和建立原型來說,第二種假設顯得十分有效。然而,【P&S 94】中又提到,“當一種已經完成的軟件產品到達了成熟期時,采用封閉式環境下的假設就可以被考慮了,因為這樣可以使得一些比較高級的編譯技術得以有了用武之處。只有在整個程序都被了解的情況下,我們才可能在其上面執行諸如全局寄存器分配、程序流程分析及無效代碼檢測等動作。”(附:【P&S 94】Jens Palsberg and Michael I. Schwartzbach, Object-Oriented Type Systems, Wiley 1994)。  閱讀全文
            posted @ 2007-09-27 10:32 lovedday 閱讀(538) | 評論 (0)編輯 收藏
                 摘要: 在所有對C++的批評中,虛擬函數這一部分是最復雜的。這主要是由于C++中復雜的機制所引起的。雖然本篇文章認為多態(polymorphism)是實現面向對象編程(OOP)的關鍵特性,但還是請你不要對此觀點(即虛擬函數機制是C++中的一大敗筆)感到有什么不安,繼續看下去,如果你僅僅想知道一個大概的話,那么你也可以跳過此節。【譯者注:建議大家還是看看這節會比較好】

            在C++中,當子類改寫/重定義(override/redefine)了在父類中定義了的函數時,關鍵字virtual使得該函數具有了多態性,但是 virtual關鍵字也并不是必不可少的(只要在父類中被定義一次就行了)。編譯器通過產生動態分配(dynamic dispatch)的方式來實現真正的多態函數調用。  閱讀全文
            posted @ 2007-09-27 02:51 lovedday 閱讀(716) | 評論 (4)編輯 收藏
                 摘要: 算起來,我用Visual C++也有將近5年的歷史了。在這期間,我也曾涉獵過Visual Basic和Delphi,但都是淺嘗而止;Visual C++始終是我的主業。可是努力的成果如何呢?我用Delphi作出了十多個有規模的軟件,用VB--雖然我用在VB上的時間只有短短的兩三個月--也有兩個像樣的項目;然而,在我付出了最大熱情和最多努力的Visual C++上面,卻只作出了三個自己看得上眼的軟件。  閱讀全文
            posted @ 2007-09-26 14:32 lovedday 閱讀(757) | 評論 (0)編輯 收藏
                 摘要: 聲音內核為快速和容易地將聲音和音樂加入到游戲中提供了一種解決方案,聲音內核包含6個類組件。  閱讀全文
            posted @ 2007-09-25 00:23 lovedday 閱讀(333) | 評論 (0)編輯 收藏
                 摘要: 音樂就是一系列的音符,這些音符在不同的時間用不同的幅度被播放或者停止。有非常多的指令被用來播放音樂,但是這些指令的操作基本相同,都在使用各種各樣不同的音符。在計算機上進行作曲,實際上是存儲了很多組音樂,回放時由音頻硬件將這些音符播放出來。  閱讀全文
            posted @ 2007-09-24 23:38 lovedday 閱讀(3801) | 評論 (0)編輯 收藏


            今天看代碼時,發現一個有用的東東,offsetof(s,m),這是一個宏,MSDN文檔的說明如下:

            Retrieves the offset of a member from the beginning of its parent structure.

            size_t offsetof(
            structName,
            memberName
            );


            Parameters

            structName
            Name of the parent data structure.


            memberName
            Name of the member in the parent data structure for which to determine the offset.


            Return Value


            offsetof returns the offset in bytes of the specified member from the beginning of its parent data structure. It is undefined for bit fields.

            Remarks

            The offsetof macro returns the offset in bytes of memberName from the beginning of the structure specified by structName. You can specify types with the struct keyword.

            Note


            offsetof is not a function and cannot be described using a C prototype.

            跟蹤代碼發現定義如下:

            #define offsetof(s,m) (size_t)&(((s *)0)->m)

            然后到網上查了一下,發現還真的是很有用,附帶一位大俠的解說:

            struct AAA
            {
                int i;
                int j;
            };

            struct AAA *pAAA;
            pAAA=new AAA;


            這時,pAAA實際上是一個Pointer, 指向某一確定的內存地址,比如0x1234;
            而 pAAA->i 整體是一個int型變量,其地址是&(pAAA->i) ,'&'為取址運算符;
            那么&(pAAA->i)一定等于0x1234,因為i是結構體AAA的第一個元素。
            而&(pAAA->j)一定是0x1234 + 0x4 = 0x1238; 因為sizeof(int) = 4;

            這個做法的巧妙之處就是:它把“0”作為上例中的pAAA,那么 &(pAAA->j)就是j的offset啦。

            解析結果是:
            (s *)0 ,將 0 強制轉換為Pointer to "s"
            可以記 pS = (s *)0 ,pS是指向s的指針,它的值是0;
            那么pS->m就是m這個元素了,而&(pS->m)就是m的地址,而在本例中就是offset啦

            再把結果強制轉換為size_t型的就OK 了,size_t其實也就是int啦!!

            也就是說:

            0 ---> (s *)0

            原來的0是數值類型,現在是結構體指針類型,盡管類型變了,但其值還是不變,也就是說還是0,但這個值的意義變了,現在是地址,而不是數值。

            &(((s *)0)->m)求出字段m的地址值,但由于首地址是0,所以&(((s *)0)->m)求出字段m相對于首地址的偏移值。

            posted @ 2007-09-24 19:04 lovedday 閱讀(3762) | 評論 (0)編輯 收藏
                 摘要: 通過鍵盤、鼠標和游戲桿,輸入內核提供了一種手段,使玩家能夠同游戲進行交互。使用兩個簡單的類:INPUT和INPUT_DEVICE產生輸入設備。 INPUT類用來初始化DirectInput,而INPUT_DEVICE類用來包含一個DirectInput設備接口對象。如果要使用多個設備,需要對每個設備使用單獨的INPUT_DEVICE對象。  閱讀全文
            posted @ 2007-09-22 20:26 lovedday 閱讀(531) | 評論 (0)編輯 收藏

            搬了家,這個小區比較安靜,晚上睡覺沒有那么吵了,不過沒有電信寬帶,只能通過ADSL上網。

            平時瀏覽網頁什么的速度還可以,但速度還是比不上小區寬帶,主要就是下載太慢了,用迅雷下載最快也就200多k,如果用電信的局域網小區寬帶下載,最快每秒可以接近2M。

            現在慘了,上優酷網看視頻變得很不流暢了,帶寬不夠。


            posted @ 2007-09-22 15:03 lovedday 閱讀(265) | 評論 (0)編輯 收藏

            好多東西要收拾,光是書就有三大袋,殘念……,算是一個典型的書呆子了,書倒是一堆,看完的沒幾本。
            還有衣服,棉被,電腦桌椅,臺式機,以及其他雜七雜八的。。。
            每次搬家總是很不情愿,似乎在一個地方住久了就會產生感情,另一個重要的原因就是東西比較多,收拾搬動都很麻煩。
            而每次搬家內心總是有很多感慨,總有一股淡淡的憂愁和失落,于是我的電腦里就不停地播放亞亞的歌聲,只有亞亞的歌聲能讓我的心情平復。

            天知道沒有你,遠方會變成怎么樣。  ------- 《秋天的眼淚》



            posted @ 2007-09-21 00:08 lovedday 閱讀(185) | 評論 (1)編輯 收藏
            僅列出標題
            共136頁: First 59 60 61 62 63 64 65 66 67 Last 

            公告

            導航

            統計

            常用鏈接

            隨筆分類(178)

            3D游戲編程相關鏈接

            搜索

            最新評論

            久久嫩草影院免费看夜色| 久久亚洲AV无码西西人体| 国产亚洲欧美成人久久片| 狠狠色丁香久久综合五月| 久久精品国产精品亚洲艾草网美妙 | 国产韩国精品一区二区三区久久| 国产产无码乱码精品久久鸭| 国産精品久久久久久久| 久久天天躁狠狠躁夜夜不卡| 久久夜色精品国产亚洲| 日批日出水久久亚洲精品tv| 成人妇女免费播放久久久| 国产成人综合久久精品红| 久久99精品久久久久子伦| 亚洲?V乱码久久精品蜜桃 | 亚洲日本va中文字幕久久| yellow中文字幕久久网| 少妇精品久久久一区二区三区| 99久久精品这里只有精品| 亚洲AV无码久久| 奇米影视7777久久精品人人爽| 很黄很污的网站久久mimi色| 久久国产高清字幕中文| 无码国内精品久久人妻| 久久精品极品盛宴观看| 人人狠狠综合久久亚洲高清| 久久青草国产手机看片福利盒子| 中文精品久久久久人妻不卡| 一本久久a久久精品综合香蕉| 一级做a爰片久久毛片人呢| 国产精品久久久久久久久| 久久久久人妻一区精品性色av| 国产A三级久久精品| 久久久高清免费视频| 日本久久久久久久久久| 久久精品三级视频| 亚洲性久久久影院| 久久亚洲天堂| 久久久高清免费视频| 久久午夜无码鲁丝片午夜精品| 伊人久久大香线蕉精品|