“微風小說網”最新網址:https://wfxs.app,請您新增收藏以便訪問
當前位置:微風小說網 > 其它小說 > 夜半鬼入夢 > 第十九章 克蘇魯神話 (3)

第十九章 克蘇魯神話 (3) (第3/3頁)

上一頁 章節列表 下一章
好書推薦: 萬界之反套路主角 木葉之櫻花 LOL:我,上單之光 盛世風華之戰神醫妃 生娑珞 快穿之反派等等我 臣妾做不到 嬌軟惡女淚汪汪,暴君紅眼撞宮門 枕上欣之妃卿不可 木葉:我在忍界肝經驗 籃壇上帝之眼 惹火小甜妻:神秘boss,撩上癮 君子不泣 直播發癲?就她是虐文女主親媽啊 重生國醫商女 帶著男神穿六零 被迫和敵國暴君聯姻後 以貌服人 閃婚獨寵:總裁老公太難纏 我家修宇不太冷

把大象裝進冰箱大象x)

開啟冰箱;

把 大象x 塞進去;

關上冰箱;

下次想幹這件事件的時候,就只要寫一句:把大象裝進冰箱大象巴拉)。括號裡寫哪頭大象,就裝哪頭。 那麼把大象裝進冰箱)就是一個函式。

有了函式這個東西,世界上任何複雜的任務都可以被拆分成最簡單的單個任務。當我們學c語言的時候,一定要把函式的用法學好。我認為這也是新手學習c語言的主要任務。

更高階的程式語言

按照學院派的程式設計學習路線,計算機專業基本都是先學c語言,然後學c++,(然後學資料結構),然後學onjs....,然後回去再學彙編呀、電路呀什麼的。想必大家都熟悉這套方案。

其實學習一個東西,從根源開始瞭解接觸,從底層學到從真正的根源開始學的話,估計真得從邏輯電路開始了,然後學到組合語言,再學到c語言,再學c++。但是為什麼學院們都選擇從c語言開始呢?一是因為相比起組合語言,c語言更能夠學以致用,使用起來更方便;二是因為,現在許多流行的程式語言,比如c++、java、c、python都是類c語言的,首先是語法上都是仿照c語言的風格來設計的,其次它們的一些技術原理是建立在c語言的基礎之上的。它們之間的關系就好比“漢語”與“北京話”、“四川話”、“重慶話”、“廣東話”之間的關系,其中c語言就是漢語。所以c語言作為廣大語言的根基,把它當做入門程式語言來學習是沒有問題的。再以它為中心,向高層語言和底層原理來擴充套件學習,往往計算機專業的同學到大三就能把整個計算機體系打通。

程式語言發展史

<101nove.語言。並且說了遊戲領域中比較重要的幾種語言與c語言的關系。從這張圖中我們應該能夠更清晰看到這幾種語言的發展脈絡。每一種新的語言誕生,都摒棄了一些前者的弊病,加入了自己優秀的特性。但無論怎樣,每一次程式語言的發展和進步都是在前人的基礎之上進行改良和創造,很少有幾個語言是淩空出世的。正因為這樣,所以程式語言之間的差別,並不是天差地別。並不是我選擇了學習java,就意味著放棄了c;也並不是我如果不先學c語言,我就學不懂c++。程式語言之間都是觸類旁通的,只要先掌握了其中一種,那麼其他的語言就能很快掌握。

再看一眼上面的圖,接下來我來講講c、c++和、python的關系。<101nove.++

首先經過我們上面一頓瞎101nove.語言是怎麼來的,而且知道了c語言的語法比較接近我們的自然語言,語言寫的程式碼,在被cpu執行之前,需要翻譯成彙編程式碼,再翻譯成機器碼。我們對這個設計很滿意,使用了好多年。後來在使用中,特別是開發一些大型專案,比如用c語言開發一個計算機作業系統時,發現有問題處理起來很麻煩,先輩就對c語言進行了改進。有一次改進後新增了一個叫“類(cass)”的功能,這個功能很牛逼,導致那個版本的c語言直接脫胎換骨。這種與眾不同的牛逼需要在名字上體現出來,所以他們學習iphone的起名策略,在名字後面加了個“pus”。“c pus”=“c+”。一個不夠,那就兩個“c pus pus”=“c++”。順便劇透一下c的起名策略:“c”=“c pus pus pus pus”=“c++++”。)所以!c++是c的升級版,多了一個核心功能:類。語法沒有變,本質的東西沒有變,還需要被翻譯成彙編,然後翻譯成機器碼,再交給cpu執行。所以學校裡安排先學c語言,再學c++,其實這種說法是有點狗屎的,就好像是說:我們先學習“浮水”,再學習“游泳”。本來我們學習游泳的過程中就會學習浮水,但是就要把學習“浮水”先說一遍,讓人誤解為這是兩個差別很大的東西。所以懂了嗎?我再說明白一點:學習c++就是學習一個高階版本的c語言,學c++的過程中,就會先把c語言的那些東西學到。所以不存在:如果不學c語言打基礎,就學不好c++。如果再有人問這個問題,就把這一章節貼到他臉上去。

<101nove.++從c發展出來後,c語言也沒有閑著,自己還是在不斷發展,比如後來發展出了o101nove.tivec。嚴格意義上來說,“學習c語言”和“學習c++”確實是不一樣的,因為要去研究它們不同的語言特性。但是!對於沒有學過任何程式設計的初學者來說,最開始就是學習個語法認識幾個關鍵字而已,根本到不了研究語言特性的程度,所以兩者說法對他們來說幾乎沒啥差別。<101nove.和其他高階語言)

我們知道現在兩方對峙,作業系統是 os和android三足鼎立我們不知道inux)。 可是你們知道上世紀八九時年代,計算機市場是繁花綻放,各種各樣的硬體、作業系統充斥在矽谷整條小吃街。那個年代的碼農,隨手寫一個程式,並不是寫完就能到處用的啊。就算現在也不是啊。原因很多,可能cpu不一樣,作業系統不一樣....那怎麼辦?先輩們想到了一個膽大包天的方法:我寫一個軟體,這個軟體去模擬cpu硬體,然後再寫其他的程式,把這些程式編譯成這個虛擬cpu能夠執行的機器碼,然後讓虛擬cpu去執行程式。請再讀三遍)

這樣,只要所有的電腦都提前裝好我這個虛擬cpu軟體,那麼其他那些雜七雜八的軟體統統都在我上面可以執行了!完美解決跨平臺問題。

有了這個想法之後,先輩們就開始動手去寫這個牛逼哄哄的虛擬cpu軟體了。他們用c語言或c++來寫這種後來被稱作“虛擬機器”的軟體。這種事情都能幹得出來,他們就順便又為自己的“虛擬機器”發明瞭專門的編寫程式的語言真實因果關系是先發明語言,從而開發對應虛擬機器)。java語言對應 virtua achine),c語言對應 . fraork你們玩遊戲的時候肯定裝過這個),on virtua achine......

看到這裡,聰明的你已經看破了真相,原來on編寫的程式都不是直接交給真正的cpu執行的,而是交給了一個模擬cpu的軟體執行的!把我們的程式交給了另一個程式來執行!把我們的程式交給了另一個程式執行!明白嗎,為什麼那些程式猿都說c沒有c++快。因為c寫的程式交給了c++寫的一個程式來執行!java寫的程式也交給了c++寫的程式來執行!python寫的程式也交給了c++寫的程式來執行!再重複一遍就瘋了……

到現在為止,我們解開了一個新手十大困惑之一:為什麼c++比其他語言更快。現在我們還在章節“計算機與程式設計的世界”中,接下來,我們要聊一聊那幾種高階語言的不同點,以幫助我們搞清楚新手十大困惑之首:我應該選哪個語言開始學程式設計!

不同高階語言使用感受

這麼說吧,當年我才大二的時候,只學過c++。從沒有專門學過一天其他語言。在那個背景下,我能夠用c在unity寫小遊戲,我還用oid studio裡寫過一個貪吃蛇。我可是一天的c和java都沒學過。為什麼我能做到呢?因為主流程式語言的語法基本都一毛一樣,根本就不用怎麼學啊。那種差別就像東北話和天津話的差別一樣,大家都是從漢語出來的,誰聽不懂啊。為了證明幾種語言語法上真的很像,我寫了一段虛擬碼,並翻譯成不同語言版本,請找不同:

看,這三份程式碼是在幹同樣一件事情,是用三種語言所寫的。除了第6行比較特殊,其他部分你們能看出什麼區別嗎?是不是真的很像?如果掌握了其中一中語法,另外兩種有什麼難的呢?無非就是注意一些細節不同點。總有些人問第一個程式語言學什麼,我通常回答“都行都行”,看看上面這張圖,我不是瞎說的啊,對於學習些基本語法,瞭解基本概念,先學哪個真的都行反正都一樣)。如果把我們學做遊戲比喻成學做飯,語言吶、環境吶這些東西,就可以看做是廚具廚房。學做飯的時候,重要的是學習菜餚怎麼做,烹飪方法心得,廚具工具的用法是基本的也是次要的。我們隨便選個廚房開始學做飯,一旦學會了,那麼在另一個陌生的廚房裡難道就做不出飯菜了嗎?不會的。就算是另一個廚房,就算那個廚房裡的鍋、碗、灶、鏟奇形怪狀從未見過,習慣習慣也不影響我們做飯呀,因為工具畢竟還是那些,變其形式而不變其本質。

那麼在這種情況下,我們應該選那個語言開始學習呢?總要有一個選擇。這個選擇就是c。為什麼是c呢?說一個很簡單的理由,因為unity是用c寫程式碼不考慮js)。而unity是我最推薦新手學習的遊戲引擎。所以學了c就直接去用unity咯。如果有人問:“我想用ngine,我能不能從c++開始學呢?” 當然可以呀。你掌握了c++之後,如果又轉變想法想用unity來開發,也能很快上手。但是我不推薦這樣,因為c++細節非常多,更繁瑣一點。學起來沒有c輕松。而ngine呢,用起來也更麻煩一點,也不建議新手拿這兩個引擎來考驗自己的自信心。

下次繼續……

作者並非職業程式猿,也不是計算機科班出生,若文中有任何錯誤,望先輩們在留言中指出,以幫助我修正文章、傳播正確有用的知識。

擴充套件閱讀:

1.《穿越計算機的迷霧》

那麼,下一節再見。

這裡是知乎專欄《自學遊戲開發》第三篇文章:《自學遊戲開發·程式篇一——瞭解計算機的世界》。我是 竇月汐 。如果你是第一次看到本專欄,建議你跳轉到自學遊戲開發關於本專欄進行了解。如果這篇文章和本專欄對你所幫助,希望你在看到其他遊戲人需要幫助時 也能把本專欄推薦給他,向每一個遊戲人致敬。

我公開了我的一個興趣交流群,群號為:474891082。為避免無聊人士,設定了5元 群費)

明確兩點:

1.遊戲開發只是藉助了電腦和圖形學,沒有這兩個,一樣可以開發遊戲。

2.圖形學是為了在電腦裡模擬物體而形成的一門研究領域。

目前,遊戲公司偏重於成熟穩定的框架,這樣更有利於快速開發遊戲,畢竟根本是為了賺錢。只有很少一部分大公司需要自己去搞遊戲引擎,只有當開發或者定製遊戲引擎的時候,才會用到一點圖形學的知識,不過總的來說,遊戲只用到了很少一部分圖形學知識。更多的圖形學知識,會用於建模電影之類的。如果你感興趣於遊戲,那麼圖形學會讓你走的更遠,不過短期來看並沒有什麼卵用,不如踏踏實實把一款遊戲引擎用好,

章節報錯(免登入)

上一頁 章節列表 下一章
隨機推薦: 人生處處是歡喜 穿越雍正之極品後宮 我真是大德魯伊 命中姻緣 獨守空房兩年半,誘吻國舅懷個胎 百世契約:藥妃,寵不停