700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > c语言如何宏定义枚举型结构体 C语言学习笔记--枚举结构体

c语言如何宏定义枚举型结构体 C语言学习笔记--枚举结构体

时间:2023-06-18 15:11:28

相关推荐

c语言如何宏定义枚举型结构体 C语言学习笔记--枚举结构体

枚举

枚举是一种用户定义的数据类型,它用关键字enum以如下语法格式来声明:

enum 枚举类型名字 {名字0,名字1,。。。,名字n};

枚举类型名字通常并不真的使用,要用的是大括号里面的名字,因为它们就是常量符号,它们的类型是int,值则依次从0到n。

如:enum color{red,yellow,green};

就创建了3个常量,red的值是0,yellow的值是1,green的值是2。

当需要一些可以排列起来的常量值时,定义枚举的意思就是给这些常量值名称。

枚举量可以作为值;

枚举类型可以加上enum作为类型;但实际是以整数来计算和输入输出的。

#include

enum color{ red, yellow, green,Numcolors};//此处Numcolors为小套路,数值刚好等于定义的枚举量,可以定义数组,遍历数组等使用。

void f(enum color c);//此处enum必须带上

int main(void)

{

enum color t = red;//枚举类型可以加上enum作为类型

scanf("%d",&t);

f(t);

return ;

}

void f(enum color c)

{

printf("%d\n%,c);

}

枚举量

声明枚举量的时候可以指定值,如

enum COLOR {RED = , YELLOW,GREEN = };//RED = 1是从1开始的,不是从0

//YELLOW =2

//GREEN = 5

枚举只是int,即使给枚举类型的变量赋不存在的值,也没有任何warning和error。

虽然枚举类型可以当做类型用,但是很少用。

如果有意义上排比的名字,用枚举比用const int方便。

枚举比宏好,因为枚举有int类型。

结构

#include

int main(int grc,char *grv[])

{

struct date {

int month;

int day;

int year;

};

struct date today;

today.month = ;

today.day = ;

today.year = ;

printf("Today's date is %i-%i-%i\n",today.month,today.day,today.year);

return ;

}

和本地变量一样:在函数内部声明的结构变量只能在函数内部使用;在函数外声明的结构变量可以在所有函数使用。

所以通常在函数外部声明结构变量,这样可以在多个函数使用。

结构变量的初始化

struct date day = {,,};//第一种初始化方法

struct Thismonth = {.month = ,.year = };//第二种初始化方法。未指定为0

结构变量的成员

结构和数组有点像

数组用【】运算符和下标访问其成员

结构用 .运算符和名字访问其成员

today.day

要访问整个结构,直接用结构变量的名字

对于整个结构,可以赋值,取地址,也可以传递给函数参数

p1 = (struct point){5,10}; ----> p1.x = 5; p2.y = 10;

p1 = p2; ---->相当于p1.x = p2.x; p1.y = p2.y

c语言学习笔记之结构体存储

今天讲讲结构体存储问题 首先,结构体简单说是对不同类型的封装,一开始我们可能会想结构体在内存中的存储的大小是直接元素的和 例如 我们可能会觉得是 结构体大小=int(4个字节)+ short(2个字节 ...

C语言学习笔记10-结构体、枚举、联合体

C语言学习笔记10-结构体.枚举.联合体 待传

contiki学习笔记---process结构体

process,字面意义,进程,看看它的结构 struct process { struct process *next; #if PROCESS_CONF_NO_PROCESS_NAMES #def ...

C#学习笔记之结构体

1.概述 结构是一种与类相似的数据类型,不过它较类更为轻量,一般适用于表示类似Point.Rectangle.Color的对象.基本上结构能办到的类全都能办到,但在某些情况下使用结构更为合适,后面会有 ...

《PHP7底层设计与源码实现》学习笔记2——结构体对齐

书里给了一段代码,假如有个结构体如下: struct test { char a; int b; long c; void* d; int e; cha ...

c语言学习笔记 - 枚举类型

今天学习了c语言的枚举类型的使用,可能是PHP里没使用过,开始看的时候还是觉得有点怪,后来做了下例子才理解,这里做个笔记记录一下. #include enum anim ...

【C#学习笔记】结构体使用

using System; namespace ConsoleApplication { struct _st { public string name; public int age; } clas ...

Go语言学习笔记十: 结构体

Go语言学习笔记十: 结构体 Go语言的结构体语法和C语言类似.而结构体这个概念就类似高级语言Java中的类. 结构体定义 结构体有两个关键字type和struct,中间夹着一个结构体名称.大括号里面 ...

C#学习笔记_12_枚举&结构体

12_枚举&结构体 枚举 是一种数据类型 适用于某些取值范围有限的数据 语法: [访问权限修饰符] enum 枚举名 { 枚举值 } 枚举名遵循大驼峰命名法 枚举一般情况下是和switch c ...

随机推荐

转载.net泛型理解说明

net泛型理解 泛型简介: 泛型(Generic Type)是.NET Framework2.0最强大的功能之一.泛型的主要思想是将算法与数据结构完全分离开,使得一次定义的算法能作用于多种数据结构,从 ...

KeilMDK4.7a下载地址/中文乱码解决/自动关联设置

推荐地址1,速度更快(确定为4.7a版本,且含注册机):1./software/keil/MDK470.RAR 2.http://kuai.xunlei.c ...

swift 进阶笔记 (一) —— 可选型

swift定义可选型的时候,要用"?",可是在swift的标准库中,可选型的定义是Optional,"? "仅仅是个简写形式. var myN ...

LeetCode(44)- Isomorphic Strings

题目: Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the c ...

Windows Server -客户端加域端口汇总

简单对客户端加域端口做汇总操作,希望对大家有帮助. 之前有对服务端口做汇总,具体请参照:Windows Server -Active Directory域服务端口汇总:http://blog. ...

Java中的CAS原理

前言:在对AQS框架进行分析的过程中发现了很多CAS操作,因此有必要对CAS进行一个梳理,也便更清楚的了解其原理. 1.CAS是什么 CAS,是compare and swap的缩写,中文含义:比较交 ...

pytorch 参数初始化

/daydayjump/article/details/80899029

Android常见问题及解决方案收集

1.手机安裝Apk时提示“无法打开文件” 出现这个问题,是因为下载的服务端对APK的MIME类型设置错误导致,一般会设置为application/vnd.android,其实这是错误的,应该设置为ap ...

python loggin

一 日志级别 CRITICAL = 50 #FATAL = CRITICAL ERROR = 40 WARNING = 30 #WARN = WARNING INFO = 20 DEBUG = 10 ...

InvalidateRect(转)

///===================该段是自己总结的一个小结================================= InvalidateRect()函数的作用是设置一个无效区域,并 ...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。