#define和typedef区别**
在说区别之前,先看看下面定义了几个指针?
int* p1, p2, p3;
这下面定义了几个指针?
#define INTD int*
INTD p1, p2, p3;
这个呢?
typedef int* INT;
INT p1, p2, p3;
#define //宏定义命令
宏替换?->宏定义好后,在程序中使用宏名就称为宏替换。
定义 替换-> 顾名思义。
#define INTD int*
就是程序中出现int*标识符就替换成INTD字符串
typedef 起别名
typedef int* INT;
int*是你的真名,INT是你的绰号,但表示的还是你这个人,意思一样。(或许你不理解,不理解就算了吧,直接看程序吧)
#include<stdio.h>
#define INTD int*//宏定义 宏替换
typedef int* INT; //起别名
int main()
{
int* p1, p2, p3;//定义一个指针p1
INTD p1, p2, p3;//定义一个指针p1,宏替换
INT p1, p2, p3;//定义三个个指针p1,p2, p3,起别名
while (1);
return 0;
}
总的来说,typedef 感觉表达的更深层次,#define比较浅显。
自己意会吧
本文探讨了C语言中#define和typedef的主要区别。#define是预处理器指令,用于进行宏替换,而typedef则用于创建类型别名。虽然两者都能创建新的类型名称,但typedef更侧重于类型定义,而#define则是简单的文本替换。通过typedef,可以更好地表达类型的含义,而#define则较为直接和简单。
573

被折叠的 条评论
为什么被折叠?



