1.為什麼要使用Struct?
當回頭看以前的程式時,總會發現一堆又臭又長,不具彈性、亂七八糟的變數宣告,為什麼會這樣?不外乎,寫程式不打草稿,想到哪寫到哪,寫程式時的規劃不具模組性,胡亂寫一通。
以至於,程式運行許久,突然,發現Bug或者客戶突然要變更功能、增加功能,導致我好像沒什麼辦法修改?請問寫這程式的人頭殼裝大便嗎?是的...沒錯是裝大便!
(發出文章後重新看了三次,發現我並沒有說為什麼要使用Struct)
哈.......................哈 ............. ....哈.......(動物方城市之樹懶大笑)
使用Struct可以使我們更有結構性的去管理變數,而在程式中引用變數也可增加彈性,並且對於閱讀上也有一定程度的提高理解性。相信其中的奧妙只能用過的人自己去體會了...
..............哈... ...........哈 ........... ....哈.......(動物方城市之樹懶大笑)
2.什麼時候用Struct?
只要程式邏輯中,有相關聯的變數宣告,就可以使用Struct,聽腦袋裝大便的人講出這樣的話,相信正常人是聽不懂的。所以我參考一下網路上的範例,很多都拿學生來當作一個變數結構體。
例如:
一個學生可能會有五個學科的成績。
國文(我中文不好)
英文(雞同鴨講)
數學(計算火星與我的距離)
歷史(夢周公)
理化(製作會臭死人的炸彈,放屁咩)
所以我們可以宣告結構體
struct student { int chinese; int english; int math; int history; int chemistry; };
當然你可以個別宣告變數變成
int chinese, english, math, history, chemistry;
可是這樣一來,主角變成了學科,而不是學生,然而當今天如果跟你說有五個學生?那該怎麼辦?變成...
int chinese[5], english[5], math[5], history[5], chemistry[5];
好吧!如此來說是沒有錯誤的,但是看起來就是令人很不爽!
3.再說說到底什麼時候可以用結構體?
如果說,今天有一個體,例如,車子!車子是個不錯的選擇,車子是一個大的變數(結構體)而細部的定義,就是其成員,例如引擎規格、輪胎大小、車身尺寸、車身顏色等。
如果說,今天有一個體,例如,花圃!花圃是個不錯的選擇,花圃是一個大的變數(結構體)而細部的定義,就是其成員,例如椰子樹、大榕樹、四葉草、仙人掌等。
如果說,今天有一個體,例如,電腦!電腦是個不錯的選擇,電腦是一個大的變數(結構體)而細部的定義,就是其成員,例如CPU、記憶體、顯示卡、硬碟等。