21.typedef

来源:互联网 发布:js中获取json对象的值 编辑:程序博客网 时间:2024/06/06 18:07

一、typedef作用简介

* 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。

//

//  main.m

//  typedef

//

//  Created by amesty on 15-1-23.

//  Copyright (c) 2015 itcast. All rights reserved.

//


#import <Foundation/Foundation.h>

//1.给基本数据类型起别名

typedefint Integer;

typedef unsigned int UInterger;

typedef float Float;

//2.指针类型char *起别名为String

 typedefchar *String;

//3.给结构体起别名可以使代码更加简洁明


// 定义一个结构体,顺便起别名

//typedef struct MyPoint {

//    float x;

//    float y;

//} Point;   MyPoint可以省略



// 4.给指向结构体的指针起别名


//typedef Point *PP;

struct MyPoint {

   float x;

   float y;

};

// 起别名    typedef Point * PP;   Point point = {10, 20};



//5.使用typedef给枚举类型起别名

// 定义枚举类型

enum Season {spring, summer, autumn, winter};

// 给枚举类型起别名

typedef enum Season Season;




//  定义一个sum函数,计算ab的和

int sum(int a,int b) {

   int c = a + b;

   printf("%d + %d = %d", a, b, c);

   return c;

}


//6.给指向函数的指针起别名

typedef int (*MySum)(int,int);


int main(int argc,constchar * argv[])

{


    @autoreleasepool {

       Integer i = -10;

       UInterger ui =11;

        

       Float f =12.39f;

        

       NSLog(@"%d,%d,%.2f",i,ui,f);

        

        // 相当于char *str = "This is a string!";

        String str ="This is a string!";

        NSLog(@"%s", str);

        

        

       typedefstructMyPoint Point;

       Point p;

        p.x =10.0f;

        p.y =20.0f;

        

        NSLog(@"p.x=%.2f,p.y=%.2f",p.x,p.y);

        

        //指向结构题的指针类型为pp

       typedefPoint * PP;

        // 定义结构体变量

       Point point = {10,20};

        

        //定义指针变量指针中存结构体的地址

       PP poing = &point;

        

        //利用指针变量访问结构体成员

      NSLog(@"x=%fy=%f", poing->x, poing->y);

        

        // 定义枚举变量

       Season s =spring;

       NSLog(@"%d",s);

        

        

        // 定义一个指向sum函数的指针变量p

       int (*p1)(int,int) =sum;

       NSLog(@"%d", (p1)(4,5));

        

        // 定义一个指向sum函数的指针变量p

       MySum p2 =sum;

        

       NSLog(@"%d", (p2)(4,5));

        

        

        

    }

   return0;

}









0 0
原创粉丝点击