C语言_enum和typedef的分析

本文探讨了C语言中的enum枚举类型,阐述了其使用方法,强调枚举常量的特性与#define宏常量的区别。同时,分析了typedef的作用,指出它用于类型别名,但并不创建新类型,并将其与#define进行了对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

enum

枚举类型的使用方法

  • enum是一种自定义类型
  • enum定义的常量 首项为0;默认常量在前一个值的基础上依次加1
  • enum类型的变量只能取定义时的离散值
enum Color
{
    GREEN,
    BLUE = 2,
    RED
};

printf("%d,%d,%d\n",GREEM,BLUE,RED);	//0,2,3

#define宏常量与enum的区别

  • #define只是进行简单的值替换,枚举常量是真正意义上的常量
#include<stdio.h>
#define MAX 255
int main()
{
    int a[MAX];
    int i = MAX;
    return 0;
}

有宏常量的话,其实就是编译时,先变成

#include<stdio.h>

int main()
{
    int a[255];
    int i = 255;
    return 0;
}

再进行的编译,不算是常量

  • #define宏常量无法被调试,枚举常量可以
  • #define宏常量无类型信息,枚举常量是一种特定类型的常量

typedef的意义

  • typedef用于给一个已经存在的数据类型重命名
  • typedef并没有产生新的类型
  • typedef重定义的类型不能进行unsigned和signed扩展

typedef和#define的区别

  • typedef是给已有类型取别名
  • #define为简单的字符串替换
#define DCHAR CHAR*
typedef char* PCHAR;

int main()
{	
	DCHAR P1,P2;	//P1是指针char*,P2是字符char
    PCHAR P3,P4;	//P3 P4都是char*
}

reason:

DCHAR P1,P2;  
//会替换成char*
//而char* P1,P2; 只有P1是指针

PCHAR P3,P4;
//P3 P4都是PCHAR类型的
//PCHAR是char*的别名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值