在这里寻求一些建议。访问器函数采取const arg,但返回非常量指针C
我有一个包含一个指向其他结构的结构是这样的:
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吗?
正如下面@Graham所说,你在做什么是绝对好的。如果你的意图是不允许调用者修改返回的结构,返回类型应该是'const struct user *'。 –