1

在这里寻求一些建议。

我有一个结构,其中包含指向另一个结构的指针,如下所示:

struct item
{
    int type;
    struct user *owner;
};

我也有访问器函数,像这样:

int item_get_type(const struct item * i);
struct user * item_get_owner(const struct item * i);

我的问题是关于这些函数中的第二个:这是否违反了关于使用 const 的任何规则或最佳实践?

我在这里使用 const 的原因是表示访问函数不会修改传递给它的结构,但允许调用者修改返回的结构。我最好在参数中删除 const 吗?

4

2 回答 2

6

这绝对没问题,它正确地表明了你的意图。

于 2011-07-28T12:47:07.523 回答
1

此外,即使用户很容易修改结构,它仍然很好用const,因为它有助于编译器优化函数中的代码。编译器会知道它永远不需要修改函数内部的结构。

于 2011-07-28T14:07:21.787 回答