typedef 是对象的别名 COUNT a,b; 就是把 a b 看作是COUNT 的另一种对象 COUNT是对象 而不是类型 如果COUNT 没有[] 那COUNT 代表COUNT数组的第一个元素 那么a b就是COUNT[0]
因为这才是typedef的本来用法 C 语言的变量声明语法很容易让人犯这样的错误:structListNode{/* fields ...
这一问题的明确答案在ISO C标准中。N1570是最新版本。第6.7.8节第3段指出:
typedef boost::shared_ptr<Lorem> ptr; typedef std::vector<Lorem::ptr> vector; // // ... // }; 然后在代码的其他地方使用这些类型: Lorem::vector lorems; Lorem::ptr lorem( new Lorem() ); lorems.push_back( lorem ); 我喜欢它的原因: 它减少了类模板引入的噪声, std::vector<Lorem> 变...