1. 結構變數初值給定
首先,先宣告一個結構型態, 接下來再介紹兩種初值給定方法(C99/C89):
+ struct test
+ {
+ const char* cap;
+ unsigned char data_0;
+ int data_1;
+ };
support C99 mode (現在新版本的GCC都有support C99 mode 的結構變數初值給定方法。 這種方法的優點是未來如果結構調整變數的位置,宣告變數初值不用跟著調整):
+ struct test node =
+ {
+ .cap="first",
+ .data_0=10,
+ .data_1=5
+ };
以下是傳統(C89 mode)的寫法 (很可惜的是目前Watcom C版本(1.9)尚未支援C99 mode結構變數的初值給定方法),所以還是用舊有的寫法:
+ struct test node =
+ {
+ "first", // cap
+ 10, // data_0
+ 5 // data_1
+ };
2. 結構內變數對齊(alignment)的問題