您的位置:首页 > 编程语言 > C语言/C++

typedef与#define的区别

2018-02-02 09:56 375 查看
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

//1、用于名字比较长的类型
typedef unsigned int u32;

//2、用于结构体
typedef struct MyStruct {
int a;
int b;
char c;
}MyStruct;
int main(void)
{
unsigned int a;
u32 b;
printf("%d,%d\n",sizeof(a),sizeof(b));//都是4

//定义结构体,如果不用typedef则必须加struct关键字
struct MyStruct m1;
MyStruct m2;
printf("sizeof():%d\n",sizeof(m1));

system("pause");
return 0;
}

typedef和define的区别:

1、#define 是 C 指令,用于为各种数据类型定义别名,typedef是关键字,前不需要加#

2、typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名,比如您可以定义 1 为 ONE。

3、typedef 是由编译器执行解释的,#define 语句是由预编译器进行处理的

这一篇讲的比较详细:https://www.cnblogs.com/simonLiang/p/5738719.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  typedef C语言