SlideShare a Scribd company logo
列舉與聯合
 列舉資料型別
 聯合資料型別
Revised on July 28, 2021
Make
each
day
count
 先前討論過,為了提高程式的易讀性及方便維護,可使用 #define 前
置處理指令定義常數,每個常數符號必須使用#define個別定義
#define PI 3.14159
#define TRUE 1
#define FALSE 0
#define AUTHOR "Wu, ShyiShiou"
 列舉資料可以將⼀組整數常數定義成⼀組有意義的常數符號
 雖然 #define 指令⼀次只能定義⼀個常數,但允許定義符點數常數
列舉資料型別enum 1/6
2
Make
each
day
count
 enum 用來定義列舉資料,語法如下:
enum 列舉名稱 {
成員名稱,
成員名稱 = 整數常數,
成員名稱,
...
};
 成員名稱後面沒有指定整數常數時,其整數常數值規則如下
 如果為第⼀個時,整數常數值為0
 如果不是第⼀個時,其整數常數值為上⼀個成員的整數常數值加
enum color {
black, //black = 0
white, //white = 1
blue = 5,
red, //red = 6
yellow //yellow = 7
};
列舉資料型別enum 2/6
3
Make
each
day
count
 定義完成列舉資料型別,即可用來宣告列舉變數,例如:
enum color mycolor;
 也可在定義列舉資料型別時⼀併宣告列舉變數
enum color {
black, //black = 0
white, //white = 1
blue = 5,
red, //red = 6
yellow //yellow = 7
} mycolor;
列舉資料型別enum 3/6
4
Make
each
day
count
 常見的列舉定義
enum boolean {FLASE, TRUE};
enum number {ZERO, ONE, TWO, THREE, FOUR, FIVE};
enum number {CLUB, DIAMOND, HEART, SPADE};
enum direction {EAST, WEST, SOUTH, NORTH};
enum month {Jan = 1, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec};
列舉資料型別enum 4/6
5
Make
each
day
count
#include <stdio.h>
#include <stdlib.h>
enum months{Jan = 1, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec};
void test_enum(){
int month = -1, day = 0;
printf("輸入今天日期(mm/dd):");
scanf("%d/%d", &month, &day);
switch(month){
case Jan:
printf("%d月 ⼜是新的⼀年", Jan);
break;
case Feb:
printf("⻄洋情⼈節在%d月", Feb);
break;
case Mar:
printf("%d月 春暖花開的季節", Mar);
break;
case Apr:
printf("%d月 清明節祭祀祖先慎終追遠", Apr);
break;
列舉資料型別enum 5/6
6
Make
each
day
count
case May:
printf("%d月 第⼆個星期日為⺟親節", May);
break;
case Jun:
printf("%d月 期末考到了", Jun);
break;
case Jul:
case Aug:
printf("7,8月放暑假囉");
break;
case Sep:
case Oct:
case Nov:
printf("9, 10, 11月秋高氣爽");
break;
case Dec:
printf("%d月來臨,聖誕節快到了", Dec);
break;
default:
printf("資料錯誤n");
}
}
列舉資料型別enum 6/6
7
Make
each
day
count
 在先前單元討論過,當宣告⼀個變數,就會在電腦的記憶體 (memory)
保留⼀個合適的空間,用來儲存變數資料
 不同類型資料,所需要的儲存空間大小也不同,所以在宣告變數時要告知
預計用這個變數來儲存什麼樣的資料
聯合資料型別union 1/7
8
資料型態 說明 記憶體空間 (bytes)
char 字元 1
short int 短整數 2
int 整數 4
float 單精度浮點數 4
double 倍精度浮點數 8
long double ⻑倍精度浮點數 10
array 陣列 陣列元素資料型別空間×陣列⻑度
Make
each
day
count
 union 是由 struct 結構衍生出來的資料型別
 union 用來定義聯合資料,語法如下:
union 聯合名稱 {
資料型別 欄位名稱1,
資料型別 欄位名稱2,
...
};
 例如:
union student {
char name[10];
char subject[10];
float percentage;
};
 定義完成聯合資料型別,即可用來宣告聯合變數,例如:
union student s1;
聯合資料型別union 2/7
9
Make
each
day
count
 也可在定義聯合資料型別時⼀併宣告聯合變數
union 聯合名稱 {
資料型別 欄位名稱1,
資料型別 欄位名稱2,
...
}聯合變數1, 聯合變數2;
 例如:
union student {
char name[10];
char subject[10];
float percentage;
} s1, s2;
 要存取聯合變數欄位資料時,⼀樣使用「⋅」點運算子,例如:
s1.percentage = 85.0;
聯合資料型別union 3/7
10
Make
each
day
count
struct sdata {
char name[10];
char subject[10];
float percentage;
};
union sdata {
char name[10];
char subject[10];
float percentage;
};
聯合資料型別union 4/7
11
name
subject
percentage
10bytes
m
10bytes
4bytes
m+10
m+20
10bytes
m
name subject
percentage
4bytes
 struct 結構中的每個欄位都會配置各自獨立的記憶體空間,但 union
中的各欄位則是共同擁有記憶體空間。當宣告⼀個 union 變數時,編
譯器會找出 union 中最大記憶體空間的欄位,並以此空間配置記憶體,
供全部欄位⼀起共用
Make
each
day
count
#include <stdio.h>
#include <string.h>
union udata {
char name[10];
char subject[10];
float percentage;
} u_record;
struct sdata {
char name[10];
char subject[10];
float percentage;
} s_record;
聯合資料型別union 5/7
12
Make
each
day
count
void test_union() {
strcpy(s_record.name, "Raju");
printf(" Name : %s n", s_record.name);
strcpy(s_record.subject, "Maths");
printf(" Name : %s n", s_record.name);
printf(" Subject : %s n", s_record.subject);
s_record.percentage = 86.50;
printf(" Name : %s n", s_record.name);
printf(" Subject : %s n", s_record.subject);
printf(" Percentage : %f n", s_record.percentage);
strcpy(u_record.name, "Raju");
printf("n Name : %s n", u_record.name);
strcpy(u_record.subject, "Maths");
printf(" Name : %s n", u_record.name);
printf(" Subject : %s n", u_record.subject);
u_record.percentage = 86.50;
printf(" Name : %s n", u_record.name);
printf(" Subject : %s n", u_record.subject);
printf(" Percentage : %f n", u_record.percentage);
}
聯合資料型別union 6/7
13
Make
each
day
count
#include <stdio.h>
#include <string.h>
union udata {
char byte[4];
short int word[2];
int value;
} u_value;
void test_union2() {
u_value.value = 0x12345678;
printf("0x%xn", u_value.byte[0]);
printf("0x%xn", u_value.word[0]);
printf("0x%xn", u_value.word[1]);
printf("0x%xn", u_value.value);
}
聯合資料型別union 7/7
14

More Related Content

What's hot

Python分支作業
Python分支作業Python分支作業
Python分支作業
吳錫修 (ShyiShiou Wu)
 
C程式-陣列與指標
C程式-陣列與指標C程式-陣列與指標
C程式-陣列與指標
艾鍗科技
 
Python變數與資料運算
Python變數與資料運算Python變數與資料運算
Python變數與資料運算
吳錫修 (ShyiShiou Wu)
 
Python元組,字典,集合
Python元組,字典,集合Python元組,字典,集合
Python元組,字典,集合
吳錫修 (ShyiShiou Wu)
 
Scala再探
Scala再探Scala再探
Scala再探
afeihehe
 
Python程式設計 - 分支作業
Python程式設計 - 分支作業Python程式設計 - 分支作業
Python程式設計 - 分支作業
吳錫修 (ShyiShiou Wu)
 
Swift编程语言入门教程 中文版
Swift编程语言入门教程 中文版Swift编程语言入门教程 中文版
Swift编程语言入门教程 中文版
Harvey Zhang
 
Rde packagean zhuang_ji_ji_ben_cao_zuo_
Rde packagean zhuang_ji_ji_ben_cao_zuo_Rde packagean zhuang_ji_ji_ben_cao_zuo_
Rde packagean zhuang_ji_ji_ben_cao_zuo_vinsin27
 
系統程式 -- 第 8 章 編譯器
系統程式 -- 第 8 章 編譯器系統程式 -- 第 8 章 編譯器
系統程式 -- 第 8 章 編譯器
鍾誠 陳鍾誠
 
Python 迴圈作業
Python 迴圈作業Python 迴圈作業
Python 迴圈作業
吳錫修 (ShyiShiou Wu)
 
Ch03
Ch03Ch03
Ch03
jashliao
 
Sql培训 (1)
Sql培训 (1)Sql培训 (1)
Sql培训 (1)
jhao niu
 
0710 php學習進度(1)
0710 php學習進度(1)0710 php學習進度(1)
0710 php學習進度(1)
K- Peggy
 
建置Python開發環境
建置Python開發環境建置Python開發環境
建置Python開發環境
吳錫修 (ShyiShiou Wu)
 
Ch10
Ch10Ch10
Ch10
jashliao
 
系統程式 -- 第 12 章 系統軟體實作
系統程式 -- 第 12 章 系統軟體實作系統程式 -- 第 12 章 系統軟體實作
系統程式 -- 第 12 章 系統軟體實作
鍾誠 陳鍾誠
 
Python程式設計 - 串列資料應用
Python程式設計 - 串列資料應用 Python程式設計 - 串列資料應用
Python程式設計 - 串列資料應用
吳錫修 (ShyiShiou Wu)
 
Python程式設計 - 迴圈作業
Python程式設計 - 迴圈作業Python程式設計 - 迴圈作業
Python程式設計 - 迴圈作業
吳錫修 (ShyiShiou Wu)
 
07 陣列與字串
07 陣列與字串07 陣列與字串
07 陣列與字串shademoon
 

What's hot (20)

Python分支作業
Python分支作業Python分支作業
Python分支作業
 
C程式-陣列與指標
C程式-陣列與指標C程式-陣列與指標
C程式-陣列與指標
 
Python變數與資料運算
Python變數與資料運算Python變數與資料運算
Python變數與資料運算
 
Python元組,字典,集合
Python元組,字典,集合Python元組,字典,集合
Python元組,字典,集合
 
Scala再探
Scala再探Scala再探
Scala再探
 
Python程式設計 - 分支作業
Python程式設計 - 分支作業Python程式設計 - 分支作業
Python程式設計 - 分支作業
 
Swift编程语言入门教程 中文版
Swift编程语言入门教程 中文版Swift编程语言入门教程 中文版
Swift编程语言入门教程 中文版
 
Rde packagean zhuang_ji_ji_ben_cao_zuo_
Rde packagean zhuang_ji_ji_ben_cao_zuo_Rde packagean zhuang_ji_ji_ben_cao_zuo_
Rde packagean zhuang_ji_ji_ben_cao_zuo_
 
系統程式 -- 第 8 章 編譯器
系統程式 -- 第 8 章 編譯器系統程式 -- 第 8 章 編譯器
系統程式 -- 第 8 章 編譯器
 
Python 迴圈作業
Python 迴圈作業Python 迴圈作業
Python 迴圈作業
 
Ch03
Ch03Ch03
Ch03
 
Sql培训 (1)
Sql培训 (1)Sql培训 (1)
Sql培训 (1)
 
0710 php學習進度(1)
0710 php學習進度(1)0710 php學習進度(1)
0710 php學習進度(1)
 
建置Python開發環境
建置Python開發環境建置Python開發環境
建置Python開發環境
 
Ch10
Ch10Ch10
Ch10
 
系統程式 -- 第 12 章 系統軟體實作
系統程式 -- 第 12 章 系統軟體實作系統程式 -- 第 12 章 系統軟體實作
系統程式 -- 第 12 章 系統軟體實作
 
Python程式設計 - 串列資料應用
Python程式設計 - 串列資料應用 Python程式設計 - 串列資料應用
Python程式設計 - 串列資料應用
 
Python程式設計 - 迴圈作業
Python程式設計 - 迴圈作業Python程式設計 - 迴圈作業
Python程式設計 - 迴圈作業
 
Php & Mysql
Php & MysqlPhp & Mysql
Php & Mysql
 
07 陣列與字串
07 陣列與字串07 陣列與字串
07 陣列與字串
 

More from 吳錫修 (ShyiShiou Wu)

mbot2.0教學-陀螺儀與三軸加速計應用.pdf
mbot2.0教學-陀螺儀與三軸加速計應用.pdfmbot2.0教學-陀螺儀與三軸加速計應用.pdf
mbot2.0教學-陀螺儀與三軸加速計應用.pdf
吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-使用makeblock雲服務.pdf
mbot2.0教學-使用makeblock雲服務.pdfmbot2.0教學-使用makeblock雲服務.pdf
mbot2.0教學-使用makeblock雲服務.pdf
吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-局域網路傳輸應用.pdf
mbot2.0教學-局域網路傳輸應用.pdfmbot2.0教學-局域網路傳輸應用.pdf
mbot2.0教學-局域網路傳輸應用.pdf
吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-四路顏色感測器應用.pdf
mbot2.0教學-四路顏色感測器應用.pdfmbot2.0教學-四路顏色感測器應用.pdf
mbot2.0教學-四路顏色感測器應用.pdf
吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-聲光控制應用.pdf
mbot2.0教學-聲光控制應用.pdfmbot2.0教學-聲光控制應用.pdf
mbot2.0教學-聲光控制應用.pdf
吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-光感測器與LED應用.pdf
mbot2.0教學-光感測器與LED應用.pdfmbot2.0教學-光感測器與LED應用.pdf
mbot2.0教學-光感測器與LED應用.pdf
吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-超音波感測應用.pdf
mbot2.0教學-超音波感測應用.pdfmbot2.0教學-超音波感測應用.pdf
mbot2.0教學-超音波感測應用.pdf
吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-移動控制.pdf
mbot2.0教學-移動控制.pdfmbot2.0教學-移動控制.pdf
mbot2.0教學-移動控制.pdf
吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-mblock5開發mBot 2.0應用程式.pdf
mbot2.0教學-mblock5開發mBot 2.0應用程式.pdfmbot2.0教學-mblock5開發mBot 2.0應用程式.pdf
mbot2.0教學-mblock5開發mBot 2.0應用程式.pdf
吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-組裝與測試.pdf
mbot2.0教學-組裝與測試.pdfmbot2.0教學-組裝與測試.pdf
mbot2.0教學-組裝與測試.pdf
吳錫修 (ShyiShiou Wu)
 
Python函式
Python函式Python函式
Python串列資料應用
Python串列資料應用Python串列資料應用
Python串列資料應用
吳錫修 (ShyiShiou Wu)
 
micro:bit加速度感測應用
micro:bit加速度感測應用micro:bit加速度感測應用
micro:bit加速度感測應用
吳錫修 (ShyiShiou Wu)
 
C語言檔案處理
C語言檔案處理C語言檔案處理
C語言檔案處理
吳錫修 (ShyiShiou Wu)
 
C語言函式
C語言函式C語言函式
C語言迴圈作業
C語言迴圈作業C語言迴圈作業
C語言迴圈作業
吳錫修 (ShyiShiou Wu)
 
C語言運算式和運算子
C語言運算式和運算子C語言運算式和運算子
C語言運算式和運算子
吳錫修 (ShyiShiou Wu)
 
C語言基本資料型別與變數
C語言基本資料型別與變數C語言基本資料型別與變數
C語言基本資料型別與變數
吳錫修 (ShyiShiou Wu)
 
C語言初體驗
C語言初體驗C語言初體驗
C語言初體驗
吳錫修 (ShyiShiou Wu)
 
程式設計概論
程式設計概論程式設計概論
程式設計概論
吳錫修 (ShyiShiou Wu)
 

More from 吳錫修 (ShyiShiou Wu) (20)

mbot2.0教學-陀螺儀與三軸加速計應用.pdf
mbot2.0教學-陀螺儀與三軸加速計應用.pdfmbot2.0教學-陀螺儀與三軸加速計應用.pdf
mbot2.0教學-陀螺儀與三軸加速計應用.pdf
 
mbot2.0教學-使用makeblock雲服務.pdf
mbot2.0教學-使用makeblock雲服務.pdfmbot2.0教學-使用makeblock雲服務.pdf
mbot2.0教學-使用makeblock雲服務.pdf
 
mbot2.0教學-局域網路傳輸應用.pdf
mbot2.0教學-局域網路傳輸應用.pdfmbot2.0教學-局域網路傳輸應用.pdf
mbot2.0教學-局域網路傳輸應用.pdf
 
mbot2.0教學-四路顏色感測器應用.pdf
mbot2.0教學-四路顏色感測器應用.pdfmbot2.0教學-四路顏色感測器應用.pdf
mbot2.0教學-四路顏色感測器應用.pdf
 
mbot2.0教學-聲光控制應用.pdf
mbot2.0教學-聲光控制應用.pdfmbot2.0教學-聲光控制應用.pdf
mbot2.0教學-聲光控制應用.pdf
 
mbot2.0教學-光感測器與LED應用.pdf
mbot2.0教學-光感測器與LED應用.pdfmbot2.0教學-光感測器與LED應用.pdf
mbot2.0教學-光感測器與LED應用.pdf
 
mbot2.0教學-超音波感測應用.pdf
mbot2.0教學-超音波感測應用.pdfmbot2.0教學-超音波感測應用.pdf
mbot2.0教學-超音波感測應用.pdf
 
mbot2.0教學-移動控制.pdf
mbot2.0教學-移動控制.pdfmbot2.0教學-移動控制.pdf
mbot2.0教學-移動控制.pdf
 
mbot2.0教學-mblock5開發mBot 2.0應用程式.pdf
mbot2.0教學-mblock5開發mBot 2.0應用程式.pdfmbot2.0教學-mblock5開發mBot 2.0應用程式.pdf
mbot2.0教學-mblock5開發mBot 2.0應用程式.pdf
 
mbot2.0教學-組裝與測試.pdf
mbot2.0教學-組裝與測試.pdfmbot2.0教學-組裝與測試.pdf
mbot2.0教學-組裝與測試.pdf
 
Python函式
Python函式Python函式
Python函式
 
Python串列資料應用
Python串列資料應用Python串列資料應用
Python串列資料應用
 
micro:bit加速度感測應用
micro:bit加速度感測應用micro:bit加速度感測應用
micro:bit加速度感測應用
 
C語言檔案處理
C語言檔案處理C語言檔案處理
C語言檔案處理
 
C語言函式
C語言函式C語言函式
C語言函式
 
C語言迴圈作業
C語言迴圈作業C語言迴圈作業
C語言迴圈作業
 
C語言運算式和運算子
C語言運算式和運算子C語言運算式和運算子
C語言運算式和運算子
 
C語言基本資料型別與變數
C語言基本資料型別與變數C語言基本資料型別與變數
C語言基本資料型別與變數
 
C語言初體驗
C語言初體驗C語言初體驗
C語言初體驗
 
程式設計概論
程式設計概論程式設計概論
程式設計概論
 

C語言列舉與聯合

  • 2. Make each day count  先前討論過,為了提高程式的易讀性及方便維護,可使用 #define 前 置處理指令定義常數,每個常數符號必須使用#define個別定義 #define PI 3.14159 #define TRUE 1 #define FALSE 0 #define AUTHOR "Wu, ShyiShiou"  列舉資料可以將⼀組整數常數定義成⼀組有意義的常數符號  雖然 #define 指令⼀次只能定義⼀個常數,但允許定義符點數常數 列舉資料型別enum 1/6 2
  • 3. Make each day count  enum 用來定義列舉資料,語法如下: enum 列舉名稱 { 成員名稱, 成員名稱 = 整數常數, 成員名稱, ... };  成員名稱後面沒有指定整數常數時,其整數常數值規則如下  如果為第⼀個時,整數常數值為0  如果不是第⼀個時,其整數常數值為上⼀個成員的整數常數值加 enum color { black, //black = 0 white, //white = 1 blue = 5, red, //red = 6 yellow //yellow = 7 }; 列舉資料型別enum 2/6 3
  • 4. Make each day count  定義完成列舉資料型別,即可用來宣告列舉變數,例如: enum color mycolor;  也可在定義列舉資料型別時⼀併宣告列舉變數 enum color { black, //black = 0 white, //white = 1 blue = 5, red, //red = 6 yellow //yellow = 7 } mycolor; 列舉資料型別enum 3/6 4
  • 5. Make each day count  常見的列舉定義 enum boolean {FLASE, TRUE}; enum number {ZERO, ONE, TWO, THREE, FOUR, FIVE}; enum number {CLUB, DIAMOND, HEART, SPADE}; enum direction {EAST, WEST, SOUTH, NORTH}; enum month {Jan = 1, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec}; 列舉資料型別enum 4/6 5
  • 6. Make each day count #include <stdio.h> #include <stdlib.h> enum months{Jan = 1, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec}; void test_enum(){ int month = -1, day = 0; printf("輸入今天日期(mm/dd):"); scanf("%d/%d", &month, &day); switch(month){ case Jan: printf("%d月 ⼜是新的⼀年", Jan); break; case Feb: printf("⻄洋情⼈節在%d月", Feb); break; case Mar: printf("%d月 春暖花開的季節", Mar); break; case Apr: printf("%d月 清明節祭祀祖先慎終追遠", Apr); break; 列舉資料型別enum 5/6 6
  • 7. Make each day count case May: printf("%d月 第⼆個星期日為⺟親節", May); break; case Jun: printf("%d月 期末考到了", Jun); break; case Jul: case Aug: printf("7,8月放暑假囉"); break; case Sep: case Oct: case Nov: printf("9, 10, 11月秋高氣爽"); break; case Dec: printf("%d月來臨,聖誕節快到了", Dec); break; default: printf("資料錯誤n"); } } 列舉資料型別enum 6/6 7
  • 8. Make each day count  在先前單元討論過,當宣告⼀個變數,就會在電腦的記憶體 (memory) 保留⼀個合適的空間,用來儲存變數資料  不同類型資料,所需要的儲存空間大小也不同,所以在宣告變數時要告知 預計用這個變數來儲存什麼樣的資料 聯合資料型別union 1/7 8 資料型態 說明 記憶體空間 (bytes) char 字元 1 short int 短整數 2 int 整數 4 float 單精度浮點數 4 double 倍精度浮點數 8 long double ⻑倍精度浮點數 10 array 陣列 陣列元素資料型別空間×陣列⻑度
  • 9. Make each day count  union 是由 struct 結構衍生出來的資料型別  union 用來定義聯合資料,語法如下: union 聯合名稱 { 資料型別 欄位名稱1, 資料型別 欄位名稱2, ... };  例如: union student { char name[10]; char subject[10]; float percentage; };  定義完成聯合資料型別,即可用來宣告聯合變數,例如: union student s1; 聯合資料型別union 2/7 9
  • 10. Make each day count  也可在定義聯合資料型別時⼀併宣告聯合變數 union 聯合名稱 { 資料型別 欄位名稱1, 資料型別 欄位名稱2, ... }聯合變數1, 聯合變數2;  例如: union student { char name[10]; char subject[10]; float percentage; } s1, s2;  要存取聯合變數欄位資料時,⼀樣使用「⋅」點運算子,例如: s1.percentage = 85.0; 聯合資料型別union 3/7 10
  • 11. Make each day count struct sdata { char name[10]; char subject[10]; float percentage; }; union sdata { char name[10]; char subject[10]; float percentage; }; 聯合資料型別union 4/7 11 name subject percentage 10bytes m 10bytes 4bytes m+10 m+20 10bytes m name subject percentage 4bytes  struct 結構中的每個欄位都會配置各自獨立的記憶體空間,但 union 中的各欄位則是共同擁有記憶體空間。當宣告⼀個 union 變數時,編 譯器會找出 union 中最大記憶體空間的欄位,並以此空間配置記憶體, 供全部欄位⼀起共用
  • 12. Make each day count #include <stdio.h> #include <string.h> union udata { char name[10]; char subject[10]; float percentage; } u_record; struct sdata { char name[10]; char subject[10]; float percentage; } s_record; 聯合資料型別union 5/7 12
  • 13. Make each day count void test_union() { strcpy(s_record.name, "Raju"); printf(" Name : %s n", s_record.name); strcpy(s_record.subject, "Maths"); printf(" Name : %s n", s_record.name); printf(" Subject : %s n", s_record.subject); s_record.percentage = 86.50; printf(" Name : %s n", s_record.name); printf(" Subject : %s n", s_record.subject); printf(" Percentage : %f n", s_record.percentage); strcpy(u_record.name, "Raju"); printf("n Name : %s n", u_record.name); strcpy(u_record.subject, "Maths"); printf(" Name : %s n", u_record.name); printf(" Subject : %s n", u_record.subject); u_record.percentage = 86.50; printf(" Name : %s n", u_record.name); printf(" Subject : %s n", u_record.subject); printf(" Percentage : %f n", u_record.percentage); } 聯合資料型別union 6/7 13
  • 14. Make each day count #include <stdio.h> #include <string.h> union udata { char byte[4]; short int word[2]; int value; } u_value; void test_union2() { u_value.value = 0x12345678; printf("0x%xn", u_value.byte[0]); printf("0x%xn", u_value.word[0]); printf("0x%xn", u_value.word[1]); printf("0x%xn", u_value.value); } 聯合資料型別union 7/7 14