自定義型別介紹

2021-09-24 22:20:59 字數 830 閱讀 4732

一、結構體型別建立

1)結構的宣告

struct tag

variable-list;

eg:描述乙個學生

struct stu

; //此處有分號

2)特殊的宣告

匿名結構體型別:在宣告的時候省略了結構體標籤tag

struct

x;struct

a[20],*p;

結構體內存對齊

規則:1.第乙個成員在與結構體變數偏移量為0的位址處

2.其他成員變數要對齊到某個數字(對齊數)的整數倍的位址處

對齊數=編譯器預設的乙個對齊數與該成員大小的較小值

(vs中預設的值為8

(linux中預設的值為4

3.結構體總大小為最大對齊數(每個成員變數都有乙個對齊數)的整數倍。

4.如果巢狀了結構體的情況,巢狀的結構體對齊到自己的最大對齊數的整數倍,結構體的整體大小就是所有最大對齊數(含巢狀結構體的對齊數)的整數倍。

列舉+聯合

列舉是乙個被命名的整型常數的集合,本質還是整型;

內部成員第乙個預設值是0,後邊依次+1;

例如enum a

enum ahalf;

}num;

num.i=0x4241; /聯合成員賦值/

printf("%c%c\n", num.half.first, num.half.second);

num.half.first=『a』; /聯合中結構成員賦值/

num.half.second=『b』;

printf("%x\n", num.i);

輸出結果為:

ab6261

自定義型別

typedef型別 typedef 已有型別 新建型別 示例 typedef double area,volume typedef int number number i1 area a enum enum 列舉型別名 enum week 預設sun 0,可以比較 如果修改必須形如enum week...

自定義型別

下面列舉幾種c語言中常用的自定義資料型別 1.結構體型別 當描述乙個整型變數時,可以用int,描述字元型變數時,可以用char,但要描述乙個學生時,因為這個學生包含的資訊很多,比如姓名,性別,年齡等,不能通過單一的型別來描述,所以,這裡引入結構體型別,將某個事物的共有屬性集合在一起,宣告乙個結構體型...

自定義型別

列舉從字面意思理解就是將可能取的值一一枚舉出來,列舉型別沒有成員 可言,裡邊存放的是可能取值。列舉型別的定義 enum day enum color printf d n red printf d n green printf d n blue 執行結果 day和color都是定義的列舉型別,中的內...