一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

如何成為一名優(yōu)秀的C程序員

  英文原文:To become a good C programmer 

  問題的提出

  每過一段時(shí)間我總會(huì)收到一些程序員發(fā)來的電子郵件,他們會(huì)問我是用什么編程語言來編寫自己的游戲的,以及我是如何學(xué)習(xí)這種編程語言的。因此,我認(rèn)為在這篇博文里列出一些有關(guān)C語言的最佳讀物應(yīng)該能幫到不少人。如果你知道其它的優(yōu)秀讀物,請給我發(fā)郵件或者直接在評(píng)論欄中告訴我吧。

  問題的解答(你可以略過這部分)

  我在之前的一篇博文中已經(jīng)提到過了,目前為止,所有我所編寫的商業(yè) 3D 引擎 95% 都是 C89(也稱作標(biāo)準(zhǔn)C,或 ANSI C)。我之所以選擇 C89 而不是 C99 是因?yàn)橛行┚幾g器仍然不能完美支持 C99 標(biāo)準(zhǔn)。而且從第一天起,我就強(qiáng)制規(guī)定游戲需要能在 ios、Windows 和 Xbox 360 平臺(tái)上都能編譯。根據(jù)我所選擇的編譯平臺(tái),剩下5% 的代碼是 Objective-C(ios)或者C++(Windows, Mac OS X),這是為了將引擎綁定到原生的輸入/輸出設(shè)備上。沒想到的是,選擇C還是 C++ 這個(gè)主題在 reddit 曾上引發(fā)了很大的爭議。我選擇C的兩個(gè)真正原因是:

  ● 我寫引擎時(shí)對(duì) C++ 掌握的并不算好。平臺(tái)資源非常有限(iPhone 2G),而且我知道我得對(duì)我的工具(編程語言)相當(dāng)熟悉才能使游戲達(dá)到每秒 60 幀的速度。

  ● 因?yàn)槲已凶x過 id Software(著名游戲制作公司,Doom 系列、Quake 系列是其代表作,開創(chuàng)了 FPS 類型游戲的先河)發(fā)布過的源代碼,用純C完成一個(gè)商業(yè)游戲是我的夢想。

  這算是“好”的選擇嗎?我想,到最后唯一合理的問題是:“你的游戲發(fā)布了嗎?”以及“它跑的夠快嗎?”看看那令人難以置信的幀速吧(有人提到在玩 Shmup 時(shí)會(huì)有眩暈的感覺),我想我做了正確的選擇。

  糟糕的C讀物(不要忽略這一段)

  我將以一些我認(rèn)為不必太認(rèn)真的讀物說起:網(wǎng)絡(luò)教程,博客以及大部分 Google 上得到的東西都算(沒錯(cuò),也包括我這篇)。通常我認(rèn)為這些資料來源是不可信的,而且有潛在的危害。和這一行里大部分人一樣,我曾是重度 Google 搜索使用者。過了一段時(shí)間之后,我發(fā)現(xiàn)不準(zhǔn)確的答案反而對(duì)生產(chǎn)力的提高有反效果。這讓我有了一種速度上的錯(cuò)覺:答案找的越快,活干的越慢。沒有什么網(wǎng)站會(huì)比一本好書更有價(jià)值,沒有什么好書比反匯編輸出更有價(jià)值。

  優(yōu)秀的C讀物

  1. 《C程序設(shè)計(jì)語言》

  《C程序設(shè)計(jì)語言》(,又稱 K&R)。這是你應(yīng)該首先去看的有關(guān)C語言編程的經(jīng)典著作。讀這本書會(huì)很輕松,它只有 272 頁,386幅插圖。由C語言之父 Kernighan 和 Ritchie 親自編寫的短小且有清晰解釋的代碼示例遍布全書各個(gè)角落。在剛開始的幾周里,所有你需要了解的有關(guān)C語言的知識(shí)都在這里。這本書讀起來很有趣,主題都比較短小,而且可以使你很快上手。你可能會(huì)跳過附錄A(有關(guān)C語言中比較晦澀的陰暗角落,比如類型提升、 類型轉(zhuǎn)換、型別退化以及其它一些無用的東西)以及有關(guān)C標(biāo)準(zhǔn)庫的附錄B。我認(rèn)為剛開始學(xué)習(xí)C語言時(shí),這些就足夠了。這本書使C顯得很嬌小、簡潔,因此強(qiáng)烈推薦學(xué)習(xí)這本書。

  如果你繼續(xù)學(xué)習(xí)并堅(jiān)持練習(xí),很快你就會(huì)觸到一些詭異的情況,比如下面的例子:

unsigned int ui_one         = 1;
signed int i_one = 1;
signed short s_minus_one = -1;
if (s_minus_one > ui_one)
printf (“-1 > 1 /n”);
if (s_minus_one < i_one)
printf (“-1 < 1 /n”);
#./run
#
# -1 > 1
# -1 < 1

it知識(shí)庫如何成為一名優(yōu)秀的C程序員,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产精品原创视频 | 国产无套在线播放 | 免费人成在线观看视频色 | 精品日韩欧美一区二区三区在线播放 | 午夜激情一区 | 色视频在线免费看 | 国产三级网站在线观看 | 黄色美女视频 | 国产在线视频网址 | 97人人看| 亚洲免费黄色 | 色天天综合色天天碰 | 在线亚洲欧美性天天影院 | 一色屋成人免费精品网站 | 国产精品无码久久综合网 | 韩国美女一级毛片 | 丁香六月综合 | 欧美成人天天综合在线视色 | 一级做a爰片久久毛片人呢 一级做a爰片久久毛片图片 | 色图综合 | 91亚洲视频 | xxxxx免费| 亚洲欧美自拍一区 | 亚洲一区二区三区四区在线观看 | 日本一区二区三区中文字幕 | 国产一区二区不卡免费观在线 | 九九99久久精品午夜剧场免费 | 1区2区3区集团有限公司 | 中文字幕一级毛片 | 亚洲第一区在线观看 | 国产91啦 | 精品视频第一页 | 怡红院美国十次成人影院 | 91精品自在拍精选久久 | 一区二区三区免费 | 国产成+人+亚洲+欧美+日韩 | 国产在线小视频 | 国产美女白丝袜精品_a不卡 | 久996视频精品免费观看 | 国产日韩一区二区三区在线播放 | 中文字幕一二三四区 |