typedef與define的區別
一.
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
相關文章
- define與typedef區別與聯絡
- define和typedef的區別
- #define 與 typedef
- #define巨集與列舉以及typedef關鍵字的區別
- typedef和define具體的詳細區別
- #define、const、typedef的差別
- 淺談typedef與define
- define和defined區別
- const、define 和 static 的區別
- C語言中const和#define的區別C語言
- PHP 定義常量 define 和 const的區別PHP
- php中const和define有什麼區別PHP
- define巨集定義和const常量定義之間的區別
- C語言(typedef 型別取別名)C語言型別
- ??與?:的區別
- sqlplus中define定義的常量和variable定義的變數的區別!SQL變數
- MySQL的@與@@區別MySql
- mybatis #與$的區別MyBatis
- Null 與 “” 的區別Null
- &與&&, |與||區別
- in與exist , not in與not exist 的區別
- C++typedef宣告,enum列舉型別C++型別
- CentOS 與 Ubuntu 的區別CentOSUbuntu
- artice與section的區別
- GET 與 POST 的區別
- WebSocket 與 Socket 的區別Web
- Postgresql與MySQL的區別MySql
- chown與chmod的區別
- LESS與SASS的區別
- free 與 CFRelease 的區別
- gulp與webpack的區別Web
- @Autowired 與@Resource的區別
- let與var的區別
- post與get的區別
- HashSet與HashMap的區別HashMap
- maven與ant的區別Maven
- __new()__ 與 __init()__的區別
- TCP與UDP的區別TCPUDP