想請問為甚麼C結構不用malloc或new就可以直接y.num1 y.num2映出10 20。
但C#的物件導向如果我把 武器 劍、斧 後面的 new 武器() 拔掉就不讓我映出 劍、斧.攻擊力。
不知道struct和class明顯差異在哪,明明也是包一堆東西令成一個新的資料型態。
因為你已經在 C Code 是定義 + 宣告了啊:
/* 定義型別 test_t */
typedef struct test{
int num1 = 10;
int num2 = 20;
} test_t;
/* 宣告 */
test_t y;
這樣你在執行前就已經完成初始化 + 賦值了。
當然,如果你要用 malloc()
也是可以的:
#include <stdlib.h>
test_t* ptr = (test_t*) malloc(sizeof(test_t));
ptr -> num1 = 10;
ptr -> num2 = 20;
至於 Struct
與 Class
的差別,我認為 Struct
方便我們自定義資料結構,Class
則可以讓我們實作 OOP (因為有現成的方法能用)。
最後,雖然 C 語言沒有 Class
,但也是可以用 OOP 的觀念去撰寫程式碼的。
C 語言的物件導向設計可以講很久,如果你有興趣的話可以自己 Google XD
https://blog.heron.me/c-and-oop-b3bc39b022d1
不過我是看不懂啦,程式語言真的有些是心法,有些是招式。
推薦 froce 大一本書,我覺得二十一世紀 C 語言還不錯,講的很清楚 XD
我家書早就山積了。XD
不過剛剛有看到有介紹 makefile。覺得這本應該會蠻實用的。謝啦
以前買的書都只看到教你怎麼寫,不教你工具生態系的。
我是真的覺得買語言書應該要找順便教生態系的。
不過我沒在寫C就是了,golang爽爽用就好。
froce
我今年的鐵人賽也會寫工具生態系這一塊,歡迎追蹤 XDDDDD
後來爬很多文,C#好像是說他們兩個概念上一樣只是記憶體的存放方式和一些定義語法不一樣。
hsuan1985419
問題有順利解決就好 XD