C++进阶2. typedef用法

C++ 中的typedef用法 20131011

Typedef在C++中是一个关键字,他的用法有多重,但是自己又说不全面,所以整理一下:

1.用类型的别名

         typedef char* PChar; 这里就是使用PChar 代替程序中的char*,在编写程序的时候PChar a 等价于char * a;

         不知指针, 如 typedef int INT4;

2.为结构体的别名

         typedef struct test1{

                   char a;

                   int b;

         }Test;

         也就是Test 等价于struct test1

         使用的时候我们使用 Test a;等价于 struct test1 a;

         编程的时候,因为Java的原因,对于程序的内存有点混乱,

         Test t1; t1.a = 100;

         Test t2; t2 = t1; t2.a = 99; 其实这里的复制已经是两个对象,而不是同一个对象。

         但是在Java中,不是这个样子的,因为所有的对象都是保存在堆中的,名字只是一个指向堆中对象的引用。

class Test{

    int a;

    Test(){}

    Test(Test t){

        this.a = t.a;

    }

}

public class TestMain {

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        Test t1 = new Test();

        t1.a = 10;

        Test t2 = t1;

        t2.a = 19;

        Test t3 = new Test(t1);

        t3.a = 199;

        System.out.println(t1.a ); //19

        System.out.println(t2.a );//19

        System.out.println(t3.a );//199

    }

}

3.通过别名实现平台的兼容性

    如定义REAL类型数据,但是不同的平台上可能不支持double long double 等等,我们在程序中同意使用REAL,在程序中修该typedef 为支持的数据类型,而不用修改代码。

4.为复杂的函数指针或者类型去一个简单的名字

    typedef int (* PFun) (int* p);

    这表示的是一个函数指针,返回值是int类型的,并且参数是 int* 的函数指针。我们在程序中如果需要使用到这种类型的函数指针。

    int (* pfun1) (int* p);

    int (* pfun2) (int* p);

    简单的写法 PFunc pfun1, pfun2;即可。

追梦的飞飞

于广州中山大学 20131011

HomePage: http://yangtengfei.duapp.com

转载于:https://www.cnblogs.com/hbhzsysutengfei/p/3409498.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值