C語言-大力使用Struct

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、記憶體、顯示卡、硬碟等。

4.範例

發表迴響