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

C語言 typedef 關鍵字全攻略:基本類型、指標、結構體、枚舉、函數指標別名定義

     編輯:關於C語言

C語言 typedef 關鍵字全攻略:基本類型、指標、結構體、枚舉、函數指標別名定義

基本類型別名

typedef int Integer;
Integer a = 8;
typedef Integer MyInteger;  // 別名鏈

指標別名

typedef char *String;
String s = "hello";  // 等價於 char *s

結構體別名

typedef struct Person { int age; char *name; } Person;
Person p = {18, "Tom"};  // 無需寫 struct

或匿名結構體直接起別名:

typedef struct { int age; } Stu;
Stu s = {20};

指向結構體指針的別名

typedef struct LNode { int data; struct LNode *next; } LinkList, *LinkListPtr;
LinkList node; LinkListPtr p = &node;

枚舉別名

typedef enum { SPRING, SUMMER, AUTUMN, WINTER } Season;

函數指標別名

typedef int (*FuncPtr)(int, int);
int add(int a, int b) { return a+b; }
FuncPtr f = add;
int r = f(3,5);  // 8

typedef vs #define 關鍵差異

typedef char *String;
String s1, s2;   // 展開為 char *s1, *s2;

#define String char *
String s3, s4;   // 展開為 char *s3, s4;  // s4 是 char 非指針!

typedef 在編譯器類型系統中生效,#define 只是文本替換,指標類型別名務必用 typedef。

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