C语言— typedef语法

C语言— typedef语法

#include <stdio.h>

/*
 typedef 原有数据类型 新的数据类型;
 1、别名的基础还可以再起别名
 
 
 1、基本数据类型
 2、结构体
 3、枚举
 4、指针
 5、函数指针
 
 */


int sum(int num1,int num2)
{
    return  num1 + num2;
}


int minus(int num1,int num2)
{
    return num1 - num2;
}


int average(int num1,int num2)
{
    return  sum(num1, num2) / 2;
}


//给函数指针类型其别名
typedef int (*MethodPointer)(int,int);






int main(int argc, const char * argv[])
{
    //给函数指针起别名
    
//    int (*methodPointer)(int,int);
//    
//    methodPointer = sum;
//    
//    int result =  methodPointer(10,20);
//    printf("result = %d\n",result);
//    
//    int (*minusPointer)(int,int);
//    minusPointer  = minus;
//    minusPointer(20,10);
//    
    
    MethodPointer minu = minus;
    int result  =  minu(20,10);
    printf("result = %d\n",result);
    
    return 0;
}


void testForPointer()
{
    int a = 10;
    
    typedef int * Int;
    
    Int p;
    
    p = &a;
    
    printf("%d\n",*p);
}




/**
 *  给枚举类型起别名
 */
void testForEnum()
{
    //给枚举类型起别名
    //先定义枚举类型,然后再起一个别名
    /*
     enum Sex{
     Man,
     Woman,
     Other
     };
     
     enum Sex m = Man;
     typedef enum Sex Sex1;
     
     Sex1 s = Woman;
     printf("%d\n",s);
     */
    //  定义枚举类型的同时给它起一个别名
    
    //    typedef enum _Sex{
    //        Man,
    //        Woman,
    //        Other
    //    } Sex;
    //
    //    Sex m = Other;
    
    //  定义匿名枚举类的同时,给它起一个别名
    typedef enum {
        Man,
        Woman,
        Other
    } Sex;
    
    Sex m = Man;
    
}


/**
 *  给结构体类型起一个别名
 */
void testForStruct()
{
    // 先定义结构体,然后再给结构体起一个别名
    struct Person{
        int age;
        char *name;
    };
    
    struct Person p = {10,"xiaoming"};
    
    typedef struct Person PersonType;
    
    PersonType pp = {20,"xiaoma"};
    printf("age = %d,name = %s\n",pp.age,pp.name);
    
    //定义结构体类型的同时,给它起一个别名
    
    typedef struct _Point{
        int x;
        int y;
    } Point;
    
    Point point = {1,1};
    //定义匿名的结构体类型的同时,起一个别名
    
    typedef struct{
        int width;
        int height;
        
    } Size;
    
    Size size = {4,6};
    
}




//给基本数据类型起别名
void test()
{
    typedef int  Integer;
    
    Integer num = 10;
    printf("%d\n",num);
    
    typedef Integer Int;
    
    Int n = 20;
    printf("%d\n",n);
    
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值