typedef與define的區別

Maccy37發表於2020-12-03

一.

typedef定義型別的別名,和引用相似,引用是變數或者物件的別名

typedef  prefix  suffix;  //程式中用後者表示前者

#define m_prefix  m_suffix;    //程式中用前者表示後者

這是關於這兩者我最直接膚淺的理解。

二.

typedef struct 和 struct定義結構體也更好理解了。

在C中定義一個結構體型別要用typedef:

(1)

typedef struct Student
{
 int age;
 int number;
 string name;
}Stu;

typedef struct 結構名
{
  型別 變數名;
  型別 變數名;
 ...
}結構別名;

由此看來Stu實際上是struct Student的別名:Stu==struct Student

於是在宣告變數的時候就可以寫:Stu stu1;(如果沒有typedef就必須用struct Student stu1;來宣告)

(2)如果沒有Student

typedef struct
{
 int age;
 int number;
 string name;
}Stu;

宣告變數的時候要寫: Stu stu1; //Stu成了唯一一個結構體型別而不是結構體別名。

三.

C++中定義的結構體

(1)結構體型別Student

struct Student
{
 int age;
 int number;
 string name;
}stu2;

宣告變數時直接:stu2就直接是一個Student的變數了

(2)

typedef struct Student
{
 int age;
 int number;
 string name;
}stu2;

這裡stu2是一個結構體型別=struct Student  

參考部落格:

https://www.cnblogs.com/qyaizs/articles/2039101.html

https://blog.csdn.net/qq_41139830/article/details/88638816

 

相關文章