struct BinaryTreeNode { int m_nValue; BinaryTreeNode *m_pLeft; BinaryTreeNode *m_pRight; }
如上,剑指 offer 数据结构的定义里 m_n 和 m_p 是什么意思呢?
![]() | 1 Nasei 2019-10-05 23:52:17 +08:00 via Android 我猜,m 是 member,n 是 node , p 是 pointer |
2 widewing 2019-10-05 23:54:16 +08:00 via Android ![]() 匈牙利命名法 |
3 hhhsuan 2019-10-05 23:56:29 +08:00 via Android p 是指针,n 应该是表示 int,m 一般是成员变量的前缀,函数参数加 m 是画蛇添足。这种是最差劲的变量命名方式,千万别学。value, left, right 就足够了。 |
4 jancing 2019-10-06 00:08:48 +08:00 via Android ![]() g: Use with global variablesg_Counter m: Use with member variablesm_Counter p: Use with pointer variablesm_pActor V: Use with virtual functionsVDraw() I: Use with Interface classesclass IDrawable ---摘自「 Game Coding Complete 」 |
![]() | 5 MCVector 2019-10-06 00:16:53 +08:00 via Android 我们的游戏引擎就是用的这个命名法。但是对于 Struct 都是 public member 应该不用加 m_ |
6 uxstone 2019-10-06 08:30:46 +08:00 之前看 nodejs 的业务代码, 里面有很多变量命名成 cb , 一时理解不了,后来某天顿悟,原来是 callback 的缩写,淦 |
7 iwtbauh 2019-10-06 14:08:15 +08:00 via Android 又是匈牙利命名法。引用一句老话“这就是脑子有坑,编译器知道变量类型,不用你再写一遍” |