【发布时间】:2016-01-29 16:39:30
【问题描述】:
我的问题是,如果两者都定义是正确的:
typedef void* Elem;
typedef const void* const constElem;
如果我知道我会使用 const 和非 const 通用元素,例如将 copyElem 函数作为参数,我更愿意将它作为 const 获取,因为 const 正确性,这是否实用?
【问题讨论】:
-
对其中任何一个使用 typedef 都是(IMO)不切实际的。
-
我认为你只想要
constElem定义中的第一个const。第二个const指定constElem类型的变量是常量,因此不能更改。我想你的意思是只有constElempoints 不能改变。 -
pcarter,实际上是的,但是第一个 const 无论如何都不会打扰,不是吗?例如,对于 Elem 的复制函数,没有理由改变指针指向,因为它指向的内容。
-
通常你会想要避免使用 typedef 的指针。它们通常只会掩盖指针间接的级别并使代码的可读性降低(更不用说更难调试了)。
标签: c pointers generic-programming const-correctness