(三)c語言之typedef 與 struct詳細用法


typedef用法

 typedef作用:為一種數據類型取一個別名 (簡化復雜的類型聲明)

 

typedef int t1; 
typedef char t2; 

int main()
{
        t1 a = 88; 
        t2 b = 'p';
        printf("a=%d  b=%c\n", a, b); 
}

  

struct用法

struct Node: 代表結構體的一種數據類型

 

// 定義結構體的同時定義變量t1
struct Node
{
        int data;
        char *p;
} t1;
t1.data; // 使用
// t1是變量

// 定義結構體之后再定義變量t1
struct Node
{
        int data;
        char *p;
};
struct Node t1; // 使用前定義
struct Node t2;
t1.data;  // 使用
t2->p;


// 定義結構體,但不定義結構體名字Node
struct
{
        int data;
        char *p;
}t1, t2;
// 只需要t1 t2兩個變量,后面不需要用結構體名定義其它變量時可以這樣操作,但是后面沒法定義新的變量
t1.data;
t2->p;

 

typedef 與 struct結構體

typedef 給結構體定義 別名

 

// typedef 定義struct Node 結構體類型
typedef struct Node
{
        int data;
        char *p;
} t1;

// 此時t1是結構體類型, 類似於int , char
// typedef給struct Node取的別名t1,
t1 stu;  // t1是結構體類型,使用前先定義一個變量stu
stu.a;

  

注:

  struct data {} t1;  // t1是變量

  typedef struct data {} t1;  // t1是結構體類型

 

typedef 與 函數指針

typedef  char (*Func) (int, int)

typedef 定義了Func類型, Func類型為指向某種函數的指針,這種函數以char為返回值,int為參數

用法: 返回類型 (*新類型) (參數表)

#include <iostream>
#include <string>
using namespace std;

int GetMax(int a, int b)
{
        return a > b ? a : b;
}

// 兩種寫法
typedef int (FuncA) (int, int);
typedef int (*FuncB) (int, int);

int main()
{
        FuncA * a = GetMax;
        FuncB b = GetMax; 

        int Ta = a(66, 21);
        cout<<Ta<<endl;

        int Tb = b(28, 86);
        cout<<Tb<<endl;
        return 0;
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM