黑马程序员——13-C语言之typedef
来源:互联网 发布:win10办公软件激活 编辑:程序博客网 时间:2024/05/18 12:29
一、作用
给已经存在的类型起一个新的名称
二、使用场合
(1)基本数据类型
typedef int MyInt;
typedef MyInt MyInt2;
int a=10;
MyInt b = 10;
MyInt2 c = 20;
(2)指针
给指针类型char *起一个新的类型名称String,String现在是指针类型。
typedef char * String;
(3)结构体
struct Student
{
int age;
};
typedef struct Student MyStu;
typedef struct Student
{
int age;
} MyStu;
typedef struct
{
int age;
} MyStu;
struct Student stu;第三种写法不可以这样定义结构体变量
MyStu stu2,stu3;
MyStu stu4 = {20};
(4)枚举
enum Sex {Man, Woman};
typedef enum Sex MySex;
typedef enum Sex {
Man,
Woman
} MySex;
typedef enum {
Man,
Woman
} MySex;
enum Sex s = Man;
MySex s2 = Man;
(5)指向结构体的指针
struct Person
{
int age;
};
struct Person p = {20};//定义结构体变量p
struct Person *p2 = &p;//指针变量p2指向结构体变量p
或者
typedef struct Person * PersonPoint;
PersonPoint p2 = &p;
typedef struct Person
{
int age;
} * PersonPoint;
(6)指向函数的指针
typedef int (*MyPoint)(int, int);
int sum(int a, int b)
{
return a + b;
}
int minus(int a, int b)
{
return a - b;
}
//定义指针指向sum函数,接受2个int类型的参数并返回int类型
int (*p)(int, int) = sum;
int (*p2)(int, int) = minus;
//调用
p(10, 11);
p2(10,11);
使用typedef
typedef int (*MyPoint)(int, int);
MyPoint p = sum;
MyPoint p2 = minus;
//调用
p(10, 11);
p2(10,11);
三、注意
1、注意类型顺序
typedef unsigned long int MyInt;
typedef int Integer;
#define Integer int //没有分号
Integer i = 10;
typedef是给int类型起一个新名字Integer(仍是类型),宏定义是将Integer替换为int
2、和#define区别
typedef char * String; // String仍为类型
String s1, s2; // s1、s2都是String类型,即char *类型
s1 = "jack";
s2 = "rose";
#define String2 char *
String2 s3, s4; // s3才是char *指针,s4只是char
相当于char *s3, s4;
或
char *s3;
char s4;
- 黑马程序员——13-C语言之typedef
- 黑马程序员——【C语言】typedef的用法
- 黑马程序员——C语言------typedef、static和extern
- 黑马程序员——c语言基础:枚举和typedef
- [黑马程序员][C语言] typedef
- 黑马程序员——————c语言之typedef
- 黑马程序员02——C语言之typedef使用及注意.
- 黑马程序员——C语言知识点总结之预处理指令和typedef关键字
- 【黑马程序员】C语言学习笔记之typedef(十五)
- 黑马程序员--C语言之static和typedef
- 黑马程序员IOS基础---C语言学习之typedef
- 【黑马程序员】iOS学习之路——C语言之宏定义、条件编译和条件包含及typedef
- 16、黑马程序员-C语言typedef关键字
- 黑马程序员---C语言typedef的使用
- 黑马程序员 C语言基础:typedef 用法
- 黑马程序员——C语言基础--关于typedef和define的重要区别记录以及typedef的经典例子
- 黑马程序员————C语言——结构体、枚举、typedef
- 黑马程序员——C语言基础——typedef的使用
- hadoop
- MFC多文档视图界面(MDI)搭建图像处理框架程序总结
- Lua游戏提高性能方法小结
- nyoj49开心的小明(01背包)
- swift UI专项训练9 添加数据
- 黑马程序员——13-C语言之typedef
- Perl 函数返回值的问题
- swift学习笔记(一)
- Builder模式在Java中的应用
- PyQt4+fedora20
- nyoj 42 一笔画问题
- mongoDB+linux初探
- Android XmlSerializer 换行
- nyoj16矩形嵌套(动态规划)