首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言 typedef 詳解:簡化複雜類型聲明與避免指針定義錯誤

     編輯:關於C語言

兩大作用

  1. 提升可讀性:為複雜類型起別名。
  2. 防止聲明錯誤:統一指針類型,避免「一指一值」陷阱。

案例 1:結構體別名

typedef struct {
    int age;
    char *name;
    char flag;
} Person;

Person p1;           // 等價於 struct person p1;
struct person p2;    // 原寫法

案例 2:函數指針簡化

// 原 signal 原型
void (*signal(int signo, void (*func)(int)))(int);

// 使用 typedef
typedef void (*sighandler_t)(int);
sighandler_t signal(int signo, sighandler_t func);

案例 3:避免多指針聲明錯誤

// 錯誤寫法:int *p1, p2;  // p1 是指針,p2 是 int
// 正確寫法:
typedef int* IntPtr;
IntPtr p1, p2; // 兩者皆為 int*

實測對比

// 無 typedef 版本
int *p1, p2; // 警告:p2 賦值指釖給 int
p1 = &a; p2 = &b; // 錯誤:p2 非指針

// 有 typedef 版本
typedef int* PInt;
PInt p1, p2; // 編譯無警告,運行正常

善用 typedef 讓代碼更清晰、更安全,特別是涉及函數指針、多層指針時。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved