看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) 預計是在iOS上使用objective c 但是目前正在看C 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) C Primer Plus 5/e Ptt Google etc 問題(Question): 快速翻完C Primer可是不知道該怎麼去用C寫東西 餵入的資料(Input): 書一本 預期的正確結果(Expected Output): 學會用C寫具有複雜度的程式的辦法 錯誤結果(Wrong Output): 腦筋一片空白 程式碼(Code):(請善用置底文網頁, 記得排版) int brain = 1/0; 補充說明(Supplement): 自己學過Java、C#、PHP、javascript,學程式語言的速度算快 因為被公司要求寫iPhone App的關係,現在開始學objective c 稍微找了一下資料,知道objective c是建立在C的基礎上去擴充的 因此想先去把C給看一看,以及補一補,像是指標之類的,低階比較會用到的概念 於是我找了C Primer來看...... 可是快速翻完後..... 發現少了非常多的東西。 例如..... 沒throw new exception之類的東西 呃..... 沒防止犯錯的機制,全靠大腦除錯就是了? 沒class、interface、物件導向之類的 雖然很不方便,這還可以接受..... 至少struct加上指標還能湊合著用 只是Method的話,想不太到變通的方法 沒Overload..... 好吧,函式的名稱可能會越取越奇怪 但還算是小問題 沒有委派、函數指標、反射、Lamba這種東西 不知道是不是我看太快漏掉 總覺得「同時」沒有物件導向跟函數指標很不可思議..... 難道,像是 「如果失火,就去滅火 下雨 收衣服 打雷 躲起來 ....... 」 像這種,在什麼狀況下做什麼事的判斷式,都只能用if else switch去寫嗎? 這還真是惡夢..... 有變通的方法嗎? 還有,覺得少掉的另外一個重要的東西是執行緒 C Primer裡面看不到跟執行緒有關的章節..... C關於執行緒的部分,是不是要從作業系統的SDK去找? 雖然問題很模糊 但是我想問,C寫複雜的東西時,到底該怎麼設計? -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.233.153.91
james732:善用struct+function pointer可以把C寫得很物件 04/27 22:49
james732:防止犯錯C應該只有檢查回傳值的方式可以用,真的很麻煩 04/27 22:52
RouterHsieh:去下載ooc這本電子書來看吧, 04/27 22:52
RouterHsieh:http://tinyurl.com/7w7hg8f 04/27 22:52
james732:執行緒確實要由OS提供的函式來用,C本身並沒有 04/27 22:53
s3748679:那個.. 應該叫lambda不是lamda.. (小戳 04/27 22:54
EdisonX:ooc.. 地獄之書.. 04/27 22:54
james732:對了,C++11有lambda可以用,還挺有趣的 (但C沒有) 04/27 22:54
s3748679:地獄之書...!? 是哪裡很恐怖啊? 04/27 22:56
EdisonX:看到第二章你會覺得,還是乖乖學C++好了,它和善多了。 04/27 22:59
EdisonX:然後為了達成抽像和其他目的,會有一堆void*,typedef. 04/27 22:59
dreambird:你直接看obj-c就好,iOS真的用純C的機會不大 04/27 23:05
james732:我也覺得不需要看純C耶... 04/27 23:06
dreambird:有問題歡迎到MacDev問 XD 04/27 23:07
monomorium:C 的話,請從頭到尾都用指標思考會比較好喔 04/27 23:13
LaPass:我在C Primer上怎麼翻不到函數指標 orz.... 04/27 23:36
LaPass:覺得那個超級重要的... 04/27 23:36
LaPass:純C是目前是先看一看,因為低階的東西似乎都是用C,先看個 04/27 23:39
LaPass:觀念。 04/27 23:40
james732:function pointer的簡單用法 http://ideone.com/Qu11w 04/27 23:40
ericinttu:市面上還是有專門介紹obj-c語言的書,應該也都會提到它的 04/27 23:51
ericinttu:特性。 04/27 23:51
johnlinvc:obj-c其實比較像smalltalk&ruby 04/27 23:59
johnlinvc:現在有了ARC之後更不像C了 04/28 00:00
kdjf:C有function pointer啊 (推K&R) 04/28 00:33
cjcat2266:喔喔!我剛好有寫過篇簡化ooc的心得喔 :) 04/28 00:54
cjcat2266:http://bit.ly/IJWelb 04/28 00:55
cjcat2266:不過跟C++比起來的話,ooc寫起來還是不太舒服的... 04/28 00:56
firejox:OOC很可愛呀~:) 04/28 01:01
stupid0319:我以為都用下半身思考 04/28 01:59
littleshan:不用看什麼OOC了,既然要寫iOS app就直接學obj-c吧 04/28 02:06
littleshan:obj-c提供exception和class,至於lambda要自己想辦法 04/28 02:07
littleshan:thread就用系統提供的NSThread 04/28 02:07
LaPass:試著寫了一下下,有了function pointer就沒什麼好怕了~ 04/28 02:57
fengchu:供參考www.iteye.com/topic/94540,不過反正ObjC有內建 04/28 10:38
lwecloud:再怎麼樣都比C++/CX可愛...lol 04/28 11:03
remmurds:奇怪 我算是特例嗎? C++真是越看越醜越看越討厭耶... 04/28 11:27
fengchu:我比較想知道的是在C裏要用什麼妙技可以做出像C++ dtor而 04/29 00:16
fengchu:不是用goto來解決 04/29 00:17
fengchu:gcc有特別的attribute,但用標準語法做出來的比較通用 04/29 00:20
purpose:如果是區域物件,再怎樣也要自己在離開 scope 時調用 dtor 04/29 00:23
purpose:而 C++ 是編譯器自動判斷,不需要手動,這差很大 04/29 00:24
fengchu:剛才查到的 http://ppt.cc/,XA5 最後用do/while那招不錯 04/29 06:14
fengchu:可以頂著用 04/29 06:15
angleevil:c的例外處理比較是依靠goto. 04/30 16:52