• C++里为什么喜欢把一个类名define成另一个名字呢?

    2015/11/06 金泽城 3 评论  ,  , 

从网上下载到的很多开源的C++代码里都发现一个奇怪的事情,就是不知道作者是出于什么心态,总是喜欢把一个类的名字define成另一个名字,有时候甚至重新define好几次,甚至很多商业化的类库也是这样子的(比如MFC),更有甚者把int这种基础类型都要重新定义一遍,有点丧心病狂的感觉,给我带来最直观的感受就是,每次我用visual assist想从一个变量跳转到它的类定义部分,总是跳到一个define,然后再跳到下一个define,可能要跳4、5次才能找到真正的头文件。

可能因为我只是一只菜鸟,一直无法理解这种行为的好处,所以想恳请大牛给解个惑,非常感谢!

1 收藏


直接登录
最新评论
  • BurnellLiu 程序员 2015/11/30

    重定义的名字也给了你一些信息
    如下:
    typedef unsigned int Dollar;

    unsigned int pay1 = 100;
    Dollar pay2 = 100;

    pay2的可读性是不是比pay1高?
    pay1不结合上下文你可能根本不知道是什么意思,
    pay2一看就知道了

  • 金舸   2015/11/30

    C++早期非常多的情况下是用于多个系统平台或者用于不同的机器上,例如一款游戏同时为PS和XBOX开发的话就要考虑到两者的底层,很多机器的字节序和基本变量占用大小都是不一样的,用#define定义一些东西,可以用宏来控制这些基础类型。建议看一下Boost库相关的东西,宏用得非常厉害。

  • 小琰   2015/12/07

    另外一方面,你看到的往往是一整套东西,源代码本来就不是打算给你看的,大都是为了统一一种风格,方便识别。你经常用就会知道这里面这种类型是代表什么意思