day10-枚举、typedef、宏、声明

本文深入探讨了枚举类的定义与声明方法,包括先定义后声明、定义时声明以及匿名枚举的使用。同时介绍了预编译技术中的宏定义与条件编译,解释了extern和static的作用,并讨论了它们在不同场景下的应用。文章旨在提供一种清晰的技术视角,帮助开发者更好地理解和运用这些关键概念。

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

enum

先定义,后声明

枚举类 枚举类名 {变量名。。}

枚举类 枚举类名枚举变量名=声明时;

以逗号隔开,没有数据类型

输出时只能是0123等整数


定义时声明

枚举类 枚举类名 {数据类型,变量。。}枚举变量名 m


匿名枚举直接定变量

枚举类{。。。}枚举变量名;


不能对枚举值进行修改,使用时为 枚举变量名 m =声明时的值


typedef 原类型名 新类型名


定义结构体和enum时必须用typedef,否则看起来很Low


预编译-

#define 宏定义 define 名字

在函数中,值可以直接用名字代替

#define 宏替换

如:define  M(y) y+1

M(a)就代表 a+1;

Add(x,y) x+y Add(a,b)代表 a+b


预编译-条件编译

#if #else  #elif  #endif  选择内容进行编译  

#define 进行搭配


#ifndef = #if !define

#ifdef = #if define


extern 有两个作用:1.默认修饰全局变量与函数 2.申明有一个全局变量或函数存在

申明的时候不能赋值,a.c文件中的变量想在b.c中使用就申明一下

static 修饰全局变量与函数,改变变量与函数的作用域只限于当前文件内

函数默认也是extern修饰,表示这个文件别的文件也可以用,但引用的时候还是需要申明一下,否则会警告

对于extern而言,当将文件#include导入时,就不需要再另外声明了

不属于static修饰的,就是默认auto修饰的

register寄存器


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值