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關鍵字的區別
- const、define 和 static 的區別
- PHP 定義常量 define 和 const的區別PHP
- php中const和define有什麼區別PHP
- ??與?:的區別
- [PHP]常量定義: const和define區別和運用; 附constant解釋PHP
- const與static的區別
- HTTP 與 HTTPS 的區別HTTP
- getAttribute() 與 attr() 的區別
- @import與<link> 的區別Import
- Postgresql與MySQL的區別MySql
- HashSet與HashMap的區別HashMap
- HashTable與ConcurrentHashMap的區別HashMap
- maven與ant的區別Maven
- __new()__ 與 __init()__的區別
- @Autowired 與@Resource的區別
- gulp與webpack的區別Web
- free 與 CFRelease 的區別
- post與get的區別
- Git與GitHub的區別Github
- Comparable與Comparator的區別
- volatile與synchronized的區別synchronized
- Javascript中“==”與“===”的區別JavaScript
- ICMP與IGMP的區別
- UDP與TCP的區別UDPTCP
- WebApp與NativeApp的區別WebAPP
- mysql與Oracle的區別MySqlOracle
- Synchronized 與 ReentrantLock 的區別synchronizedReentrantLock
- let與var的區別
- mybatis與hibernate的區別MyBatis
- buffer與cache的區別
- grid 與 treelist 的區別
- print 與 println 的區別
- Eureka與Zookeeper的區別
- Python中 ‘==‘ 與‘is‘的區別Python
- async與defer的區別
- http與https的區別HTTP