`

c++ 学习点滴 typedef

    博客分类:
  • c++
阅读更多
最近开始捣鼓c++. 由于本身是捣鼓java的, 程序本身不陌生, 陌生的只是c++. 没有看primary c++之类的入门书, 只看了一本 c++ for java programmer 作为入门. 云里雾里的看完了整个书的 75% 就开始上手写游戏, 发现明显不行啊.

发现搞不定的时候就查点资料, 然后在这里记录下自己的理解, 权当日志了, 如果能惠及他人, 不胜荣幸. 不喜欢全文复制的帖子, 这里就只写自己理解.

typedef
当我看cocos2dx的时候遇到这句话的时候我傻眼了
typedef void (CCNode::*callbackFunc)(void);

好吧我承认意思我是理解的, 就是定义了一个名字叫做 callbackFunc 的函数指针, 接受void参数, 返回 void 类型, 但这个写法明显没什么语法规则, 让我很是迷惑, 我就想探究下什么是正确的写法. 查了一堆的资料, 最后查到这个

http://www.cnblogs.com/SweetDream/archive/2006/05/10/395921.html
我看后有了一点启发.

我们不要去纠结这个东西要怎么写, 而是要考虑这个关键之能完成什么作用. 例如你定义一个int, 你就写
int i = 9;

如果你定义一个结构体, 那么就是
struct {int x; int y;} var_1;

如果顶一函数指针那么就是
 void (CCNode::*callbackFunc)(void) = CCNode::callback;


这里, 请抛开typedef这个关键字, 把整个 = 左边的东西看作是"变量定义". 这样来理解 typedef 就容易多了. 随便怎么写, 只要做到吧typedef 后面的东西复制后黏贴到一个 = 的左边, 右边写上它的 value 没有语法错误即可. 你可以理解它是一个宏. 搞定.
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics