Chinaunix首页 | 论坛 | 博客
  • 博客访问: 359727
  • 博文数量: 100
  • 博客积分: 2500
  • 博客等级: 大尉
  • 技术积分: 1209
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-15 21:24
文章分类

全部博文(100)

文章存档

2011年(100)

分类: C/C++

2011-04-22 09:50:20

  • What's the difference between using a typedef or a #define for a user-defined type? 

In general, typedefs are preferred, in part because they can correctly encode pointer types. For example, consider these declarations:

    typedef char *String_t;
    #define String_d char *
    String_t s1, s2;
    String_d s3, s4;


s1, s2, and s3 are all declared as char *, but s4 is declared as a char, which is probably not the intention.

#defines do have the advantage that #ifdef works on them . On the other hand, typedefs have the advantage that they obey scope rules (that is, they can be declared local to a function or block).
阅读(1143) | 评论(1) | 转发(0) |
0

上一篇:类和结构体

下一篇:重载函数

给主人留下些什么吧!~~

onezeroone2011-04-24 16:01:40

typedefs have the advantage that they obey scope rules