[C语言 - 9] typedef

关键字typedef

typedef 操作符可以看做是普通变量和类型之间的转换开关!!

例如

typedef int Integer;//定义了一种类型

int Integer;//定义了一个变量

就是类型和变量的区别

A. 对数据类型定义“别名"

1 int main(int argc, const char * argv[]) {
2     typedef int integer;
3     integer i = 5;
4     printf("print the int: %d\n", i);
5
6     return 0;
7 }

区别于宏定义的概念,typedef相当于定义了一种新的数据类型,而不是简单的别名

在”别名“的基础上再定义一个别名

typedef int integer;
    typedef integer mytype;

B. typedef与指针

1     typedef char * String;
2     String name = "Simon”;

C. typedef与结构体

1     typedef struct MyPoint
2     {
3         int x;
4         int y;
5     } Point;
6
7     Point p = {10, 10};

D. typedef 结构体指针

 1     typedef struct
 2     {
 3         int age;
 4         char *name;
 5     } * PP;
 6
 7 PP per1 = {11, "Tom"};//Running Error

应该为

 1 int main(int argc, const char * argv[]) {
 2     @autoreleasepool {
 3         typedef struct{
 4             int age;
 5             char *name;
 6         } PP,*Person;
 7
 8         Person p = malloc(sizeof(PP));
 9         p->age = 12;
10         p->name = "simon";
11
12         printf("%d - %s\n", p->age, p->name);
13     }
14     return 0;
15 }

E. typedef 指向函数的指针

F. #define 与  typedef 的区别

1 typedef char * String1
2 #define String2 char *
3
4 String1 s1,s2;
5 String2 s3,s4;

==> 其中,s1,s2,s3是char指针,s4仅仅是普通的char变量

时间: 2024-11-10 23:51:09

[C语言 - 9] typedef的相关文章

【学习笔记】【C语言】typedef

1.概念 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名). 2.作用:给已经存在的类型起一个新的名称 3.使用场合: 1> 基本数据类型 2> 指针 3> 结构体 4> 枚举 5> 指向函数的指针 4.代码 1 #include <stdio.h> 2 3 typedef int MyInt; 4 typedef MyInt MyInt2; 5 6 // 给指针类型char *起一个新的类型名称String 7 typedef char *

C语言之typedef

1.在C++中,typedef已经多余了 2.结构体中用来定义别名的 struct student { string name; string name; }ll; 这个ll就是变量 typedef struct student { string name; string name; }ll2; 这个ll2就是类型,声明变量的时候,不用 struct student stu;只要这样就可以了,ll2 stu;

C语言:typedef 跟 define 的区别

typedef (int*) pINT1;以及下面这行:#define pINT2 int* pINT1 a,b; 与pINT2 a,b; 定义的a,b 有差别吗 回答: typedef作为类型定义关键字,用于在原有数据类型(包括基本类型.构造类型和指针等)的基础上,由用户自定义新的类型名称. 在编程中使用typedef的好处,除了为变量取一个简单易记且意义明确的新名称之外,还可以简化一些比较复杂的类型声明.比如: #define 像是移花接木  pINT2 a,b 就应该是   int *a,

C语言(八)typedef关键字

一.typedef作用简介 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名). #include <stdio.h>   typedef int Integer;    //为int数据类型定义一个别名 typedef unsigned int UInterger; typedef float Float;   int main(){ Integer i=-10; UInterger ui =11; Float f=12.39f; printf("%d %d %.

C语言之typedef详解

typedef可以看作type define的缩写,顾名思义就是类型定义,也就是说它只是给已有的类型重新定义了一个方便使用的别名,并没有产生新的数据类型. typedef的使用与宏定义define有些许的相似,但两者又有以下不同: 1.与#define不同,typedef给出的符号名称仅限于对类型,而不是对值. 2.typedef的解释由编译器,而不是预处理器执行. 3.typedef比#define更灵活. 既然typedef没有定义新的数据类型,那么为什么还要使用它呢?使用typedef有其

关于c语言的typedef高级用法 typedef void (*post_sync_t)(CO_Data*);

typedef void (*post_sync_t)(CO_Data*); 这个函数的原型是void f(CO_Data*);,经过了typedef void (*post_sync_t)(CO_Data*);后,post_sync_t就是f类型函数的指针的类型别名. 这时你可以这样定义一个变量:post_sync_t p;,p就是一个指向f类型函数的指针.可以这样给p赋值,p=&f. 如果你不typedef的话,定义p时你就得这样写:void (*p)(CO_Data*);

黑马程序员——c语言的typedef

一.typedef作用简介 1 /* 2 1.作用:给已经存在的类型起一个新的名称 3 4 2.使用场合: 5 1> 基本数据类型 6 2> 指针 7 3> 结构体 8 4> 枚举 9 5> 指向函数的指针 10 */ 11 12 #include <stdio.h> 13 14 typedef int MyInt; 15 typedef MyInt MyInt2; 16 17 // 给指针类型char *起一个新的类型名称String 18 typedef ch

C语言--关键字 typedef

1.基本使用 1> typedef 在基本数据类型中的使用 typedef int MyInt; // 相当于给 int 起了一个别名 typedef MyInt MyInt2; // 相当于给 MyInt 起了一个别名 MyInt a = 10; // MyInt相当于 int MyInt2 b = 12; // MyInt2相当于 int 2> typedef 和指针在一起时的使用 char *name = "jack"; typedef char * string;/

C语言使用typedef进行类型重定义

今天学习STM32开发时与遇到了一个类型重定义语句,查阅资料后把它的用法整理如下,不到之处敬请留言批评指定,看到就修改,来自开源,回馈开源,共同进步! 类型重定义基本介绍: 在 C 语言中,除系统定义的标准类型和用户自定义的结构体.共用体等类型之外,还可以使用类型说明语句typedef 定义新的类型来代替已有的类型. typedef 语句的一般形式是: 1 typedef 已定义的类型 新的类型; 例如: 1 typedef int INTEGER; /*指定用 INTEGER 代表 int 类