日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

C++ 大神John Carmack的编程传说!还在抱怨C++难学吗?看大佬操作!

發布時間:2025/3/15 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ 大神John Carmack的编程传说!还在抱怨C++难学吗?看大佬操作! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  你是否也曾發現那些頂級球星常常能夠輕松做出各種高難度動作,而其他球員卻無法做到。你是否也在疑惑這其中的原因,為什么頂級球星看起來毫不費力?

  作為一名C++程序員,John Carmack 的源代碼就像頂級球星的球技一樣震撼著我。其代碼簡單而強大,我很想知道自己如何才能像他一樣優秀。

  讓我們來探索 Doom3(游戲:毀滅戰士) 的源代碼,深入其中,尋找這些代碼簡單但強大的原因。

  2011年11月23日,id Software(游戲軟件公司)延續自己的傳統,發布了他們之前引擎的源代碼。這些源代碼被眾多開發者審閱,下面是其中一個針對 Doom3 的反饋信息:

? ? ? ?Doom 3 BFG由 C ++編寫,C++是一門既強大又復雜的編程語言,它可以編寫出無比優秀的代碼,但同時也可能讓你欲哭無淚。幸運的是,id Software的 C++子集(擁有類的 C 語言)可以讓你輕松運用 C++ :

沒有異常

沒有引用(使用指針)

盡可能少使用模板

常量無處不在

擁有類

多態性

繼承

  它僅僅是 c++ 98 標準的一個子集。以下是 Doom3 的一些特性:

1、提供一個強大的基類

  眾多的類都從 idClass 繼承而來:

  idClass 提供了下列服務:

  (1)實例創建

  (2)類型信息管理

  (3)事件管理

2、字符串操作非常簡單

  通常來說,字符串是一個項目中最常用的數據類型,許多功能都需要字符串來完成,我們需要使用函數來處理它們。

  Doom3 定義了一個 idstr 類,它幾乎包含了所有與字符串操作相關的方法,非常實用。這樣一來,你就不必像其他框架那樣需要根據不同的字符串類來定義自己的方法。

3、源代碼與GUI框架(MFC)高度解耦

  在很多使用 MFC 的項目中,代碼與它們的類型高度耦合,并且你可以找到任何代碼在 MFC 中的類型。

  在 Doom3 中,代碼與 MFC 高度解耦,僅有 GUI 類與之直接相關。如下面的 CQLinq 查詢所示:

  這個特性大大提升了開發效率。的確,只有 GUI 開發人員必須關心 MFC 框架,而對于其他開發人員來說,則并不需要在 MFC 上浪費時間。

4、提供了一個非常強大的utility程序庫(idlib)

  幾乎在所有項目中,utility 程序類都是最常用的,如下查詢結果所示:

  從以上查詢結果可以發現 utility 是用得最多的。如果 C++ 開發人員沒有一個強大的 utility 程序框架支撐,那么他們將不得不花費大量的時間自己編寫。

  idlib 幾乎提供了很多實用的類和方法,可用來處理字符串、容器和內存。這有利于提升開發人員的工作效率,讓他們更加專注到游戲邏輯上。

5、容易理解

  作為 C++ 開發人員應該都知道開發解析器和編譯器并非易事,而 Doom3 成功實現了一個硬編碼的編譯器。并且 Doom3 的實現代碼非常簡潔也很容易理解。

  下圖展示了編譯器使用的類之間的依賴關系:

  以下是編譯器源碼的代碼片段:

  過去我也曾研究過很多解析器和編譯器的源代碼。但是,這是我第一次發現一個編譯器的源代碼如此易懂,除了編譯器之外,整個 Doom3 的源代碼也一樣容易理解。這真的很神奇。當我深入研究 Doom3 的源代碼時,發現這些代碼真的寫得太好了。

  Doom3 的源代碼只使用了 C++ 標準的一個子集,它非常簡潔并且易于理解和維護。它遵循代碼設計、命名和格式化的基本規范,并沒有使用高級技術。

  John Carmack 的編程秘訣是完全遵循維基百科定義的 KISS 原則:

KISS 是由美國海軍在1960年提出的一項設計原則,KISS 是 “ Keep it simple, stupid ” 的縮寫。KISS 原則指出,相比于復雜的系統,越簡單的系統往往運行效果越好。因此簡單性應當是設計過程中需要關注的關鍵指標,同時應當盡量避免不必要的復雜性。

  KISS 原則的核心思想是:相比于復雜的系統,越簡單的系統往往運行效果越好。

采用新C++標準時的注意事項

  新標準引入了許多有趣的新功能。但是不要認為使用這些功能就可以讓你的代碼變得高效。實際上,許多新功能對開發通用庫更為有用,特別是與通用編程相關的功能。

  不要強迫自己使用所有的新功能,在絕真正需要或者有助于提高代碼效率時使用即可。例如,這篇文章就討論了過度使用 auto 關鍵字的缺點。

? ? ? ?學習C/C++編程可以湫湫掃下方二維碼,學習編程,碼上開始!

?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的C++ 大神John Carmack的编程传说!还在抱怨C++难学吗?看大佬操作!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久九九国产 | 好紧好爽再浪一点视频 | 三级国产网站 | 亚洲激情电影在线 | 日本免费精品视频 | 夜夜夜久久久 | 成人免费福利视频 | 亚洲欧洲综合 | 国产伦精品一区二区三区视频女 | 亚洲日本成人在线观看 | 台湾佬中文在线 | 天堂在线中文在线 | 国产成人麻豆精品午夜在线 | 亚洲av日韩av在线观看 | 在线视频精品免费 | 丰满大爆乳波霸奶 | 久久这里只有精品国产 | 性色av蜜臀av浪潮av老女人 | 少妇高潮一区二区三区在线 | 天天操操| 亚洲国产欧美一区二区三区深喉 | 欧美成人高清 | 老妇女性较大毛片 | 波多野结衣91 | 亚洲精选91| 二级黄色录像 | 免费成人美女在线观看. | 国产精品1| 你懂的国产视频 | 韩国中文字幕hd久久精品 | www.伊人网 | 国产成人久久婷婷精品流白浆 | 亚洲人高潮女人毛茸茸 | 日本高清不卡一区 | 国产精品91久久久 | 久久在线免费视频 | 亚洲av无码一区二区三区在线 | 亚洲香蕉在线视频 | 中文字幕 欧美激情 | 久久天堂影院 | 国产农村老头老太视频 | 成人一区二 | 国产精品ww | 四虎精品在线观看 | 91网站在线免费观看 | 成人免费高清视频 | 伊人网在线播放 | 91麻豆精品 | 国产伦精品一区二区三区高清 | 爱豆国产剧免费观看大全剧集 | 国产伦精品一区二区三区四区 | 九九爱精品视频 | av男人网 | 国产88av| 国产富婆一区二区三区 | 国产免费久久精品国产传媒 | 夜色综合网 | 色图自拍 | 青青草视频播放器 | 青青草狠狠干 | 亚色一区 | 天堂在线v | 亚洲av女人18毛片水真多 | 明星双性精跪趴灌满h | 91麻豆精品 | 91在线精品一区二区三区 | 青青草网址| 日韩av免费网址 | 99久久99 | 精品蜜桃一区二区三区 | 久久黄色一级片 | 在线免费福利视频 | 伊人色网 | 被灌满精子的波多野结衣 | 国产一区二区三区播放 | 丁香婷婷综合激情五月色 | 精品一区久久 | 欧美日韩中文一区 | 国产伦精品一区二区三区四区视频 | 18禁网站免费无遮挡无码中文 | av制服丝袜在线 | 国产黄色影视 | 久久精品国产亚洲av麻豆图片 | 亚洲免费片 | 亚洲中午字幕 | 中文字幕――色哟哟 | 久久草av| 成人在线视频免费观看 | www国产www| 雪白的扔子视频大全在线观看 | 日韩电影中文字幕 | 色狠狠综合网 | 天堂资源在线播放 | 91免费精品视频 | 黑人玩弄人妻一区二 | 中文字幕一区二区三三 | 欧美a级肉欲大片xxx | 亚洲区av | 老汉av网站 |