原来我一直误解了typedef

  1 #include <iostream>

  2 using namespace std;

  3 

  4 /* 原来自己一直误解了typedef的含义啊,应该是新定义了一种类型,类型名就是我们

    的变量名,变量名是什么样的类型,我们定义的类型就是什么类型的。比如,FuncPtr>    是一个只想一个函数值为空的带两个char参数的函数指针。然后使用时,用FuncPtr定>    义的变量就是一个指向这类函数的一个指针。

  5 */

  6 typedef void (*FuncPtr)(char, char);

  7 typedef char* charPtr;

  8 #define charPtr2 char*

  9 

 10 void func1(char a, char b)

 11 {   

 12     cout << "func1(" << a << "," << b << ") is called" << endl;

 13 }

 14 

 15 void func2(char a, char b)

 16 {   

 17     cout << "func2(" << a << "," << b << ") is called" << endl;

 18 }

 19 

 20 int main()

 21 {   

 22     FuncPtr fp1 = func1;

 23     fp1('g', 'l');

 24     FuncPtr fp2 = func2;

 25     fp2('d', 'a');

 26     

 27     char myString[10] = "one test";

 28     const char* p1 = myString;

 29     const charPtr p2 = myString;

 30     const charPtr2 p3 = myString;

 31     cout << (++ p1) << endl;

 32     // typedef和define不同在于,typedef并不是象define一样的简单替换,这里

 33     // p2是只读(read-only),不能自加。

 34     // cout << (++ p2) << endl;     

 35     cout << (++ p3) << endl;

 36 

 37     return 0;

 38 }

 39 

 40 /* output:

 41 g,l) is called

 42 func2(d,a) is called

 43 ne test

 44 ne test

 45 */

 46 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值