struct TagName {
type member1;
type member2;
// ...
};
struct TagName varName; // 聲明變量
struct TagName var = {val1, val2}; // 初始化
struct TagName *ptr = &var; // 指針
ptr->member1; // 指針訪問成員
struct TreeNode {
char *word; // 單詞文本
int count; // 出現次數
struct TreeNode *left; // 左子節點
struct TreeNode *right; // 右子節點
};
配合遞歸插入與中序遍歷,可高效完成詞頻統計(見完整代碼示例)。
struct Flags {
unsigned int is_keyword : 1;
unsigned int is_extern : 1;
unsigned int is_static : 1;
} flags;
// 操作示例
flags.is_extern = 1; // 置位
flags.is_static = 0; // 清位
優勢: 編譯器自動處理位掩碼,代碼可讀性遠高於手工宏定義。
union:多成員共享內存,用於類型轉換或節省空間enum:命名常量集合,增強代碼語義getword():從輸入流提取單詞(處理標點、大小寫)addtree():遞歸構建二叉搜索樹,統計詞頻treeprint():中序遍歷輸出有序統計結果talloc() 分配節點,strdup2() 複製字符串#pragma pack 謹慎控制