C结构体和枚举

来源:互联网 发布:mm商场软件下载 编辑:程序博客网 时间:2024/06/05 10:51

1.

typedef char* NEWTYPE 类型重定义 

作用:

1.封装数据类型,方便移植。

2.简化函数指针定义


2.

#define NEWTYPE char* 宏替换

例子:NEWTYPE p1,p2,p3; 这儿是宏替换的话,那么还原成 char *p1,p2,p3;其实只有p1是指针,其他两个是字符变量


匿名结构体,有名结构体,typedef别名结构体

1.匿名结构体,只能在定义时申明好变量,以后就不能再申明该结构体变量了

struct{

...

 } a,b;

2.有名结构体,可以在定义时申明结构体变量,也可以有以后用STU申明结构体变量

struct STU {

...

 };

3.typedef别名结构体

typedef struct STU student;

student a,b;

student *p; 等价于 struct STU *p;


结构体成员地址从低到高连续分配,首成员地址最低


结构体变量可以在定义时初始化,也可以定义完后初始化

如果有结构体中有变量是字符串时,那么应该在定义时就初始化,不应该之后再初始化,如果想定义之后初始化,那么要用.运算符,并结合strcpy()函数进行赋值,不能直接用等于号。


结构体指针 用->运算符,结构体变量用.运算符


四字节对齐,最小整数字节对齐


共用、联合体 union

使用不同类型的变量共占用同一段内存(相互覆盖),此共用体大小为元素中最大字节变量 。(可以节省内存)

除了基本概念不一样,其他用法一样。


getchar(); 过滤回车

共用体可以用来测试大端,小端


枚举

定义 enum ITEM {RED = 0,BLACK,WHITE};

申明变量 enum ITEM c1;