日韩性视频-久久久蜜桃-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++难学吗?看大佬操作!的全部內容,希望文章能夠幫你解決所遇到的問題。

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