【发布时间】:2011-06-29 19:36:35
【问题描述】:
我的库中有一个不透明类型定义为:
typedef struct MyOpaqueType* MyType; // easier to type for client code
我不能使用 typedef 传递指向 const 结构的指针,所以一些函数看起来像:
void UsePointerToConst ( const struct MyOpaqueType * )
代替:
void UserPointerToConst( const MyType ) // can't use, is really constant pointer
因此,鉴于此,我有两个问题: 参数列表中的 struct 关键字是否仅在 C 中是必需的? 有一个更好的方法吗?我应该创建一个 typedef,例如:
typedef const struct MyOpaqueType* ConstantMyType; ?
【问题讨论】:
-
-
第二种typedef是解决问题的合理方法。
-
Win32 这样做的事实是任何人都没有理由复制它的坏习惯。
标签: c++ c const-correctness