码迷,mamicode.com
首页 > 编程语言 > 详细

[C语言 - 9] typedef

时间:2015-05-13 19:34:02      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

关键字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变量

 

 
 

[C语言 - 9] typedef

标签:

原文地址:http://www.cnblogs.com/wvqusrtg/p/4501125.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!