http://write.blog.csdn.net/postedit
c語言規範,定義結構體:
typedef struct ANSWER_HEADER
{
u8 u8Type;
u8 u8Code;
u32 u32TimeStamp;
struct ANSWER_HEADER *pNext;
}ANSWER_HEADER_T, *PANSWER_HEADER_T;
ANSWER_HEADER爲結構名,這個名字主要是爲了在結構體中包含自己爲成員變量的時候有用
ANSWER_HEADER_T爲struct ANSWER_HEADER的別名
PANSWER_HEADER_T爲struct ANSWER_HEADER*的別名
上面的定義方式等價於
struct ANSWER_HEADER
{
u8 u8Type;
u8 u8Code;
u32 u32TimeStamp;
struct ANSWER_HEADER *pNext;
};
typedef struct ANSWER_HEADER ANSWER_HEADER_T;
typedef struct ANSWER_HEADER *PANSWER_HEADER_T;
********************************************************************
結構的定義:
定義一個結構的一般形式爲:
struct 結構名
{成員表列};
成員列表的形式爲:
類型說明符 成員名;
例如 :
struct stu
{
int num;
char name[20];
char sex;
float score;
};
聲明結構變量的三種方法:
1.先定義結構類型,再聲明:
struct stu
{
int num;
char name[20];
char sex;
float score;
};
struct stu boy1, boy2;
也可以用宏定義使一個符號常量來表示
一個結構類型。
例如:
#define STU struct stu
STU
{
int num;
char name[20];
char sex;
float score;
};
STU boy1, boy2;
2. 在定義結構類型的同時說明結構變量
例如:
struct stu
{
int num;
char name[20];
char sex;
float score;
}boy1, boy2;
這種形式的說明的一般形式爲:
struct 結構名
{
成員表列
}變量名錶列;
3. 直接說明結構變量。
例如:
struct
{
int num;
char name[20];
char sex;
float score;
}boy1, boy2;
這種形式的說明的一般形式爲:
struct
{
成員表列
}變量名錶列;
結構指針變量說明的一般形式爲:
struct 結構名 *結構指針變量名
例如:
struct stu *pstu;
當然也可在定義 stu 結構時同時說明 pstu。
例如:
struct stu
{
int num;
char name[20];
char sex;
float score;
}boy1, boy2, *pstu;
****************************************************************************************
下面是譚浩強老師c語言書中typedef一節:
類型定義符typedef
C語言不僅提供了豐富的數據類型,而且還允許由用戶自己定義類型說明符,也就是說
允許由用戶爲數據類型取“別名”。類型定義符 typedef 即可用來完成此功能。例如,有整
型量 a,b,其說明如下:
int a,b;
其中 int 是整型變量的類型說明符。int 的完整寫法爲 integer,爲了增加程序的可讀性,
可把整型說明符用 typedef 定義爲:
typedef int INTEGER
這以後就可用 INTEGER 來代替 int 作整型變量的類型說明了。
例如:
INTEGER a,b;
它等效於:
int a,b;
用 typedef 定義數組、指針、結構等類型將帶來很大的方便,不僅使程序書寫簡單而且
使意義更爲明確,因而增強了可讀性。
例如:
typedef char NAME[20]; 表示 NAME 是字符數組類型,數組長度爲 20。然後可
用 NAME 說明變量,如:
NAME a1,a2,s1,s2;
完全等效於:
char a1[20],a2[20],s1[20],s2[20]
又如:
typedef struct stu
{
char name[20];
int age;
char sex;
} STU;
定義 STU 表示 stu 的結構類型,然後可用 STU 來說明結構變量:
STU body1,body2;
typedef 定義的一般形式爲:
typedef 原類型名 新類型名
其中原類型名中含有定義部分,新類型名一般用大寫表示,以便於區別。
有時也可用宏定義來代替 typedef 的功能,但是宏定義是由預處理完成的,而 typedef
則是在編譯時完成的,後者更爲靈活方便。