ここでいくつかのアドバイスを求めています。アクセッサ関数はconst argを受け取りますが、Cで非定数ポインタを返します。
私は、このような何か別の構造体へのポインタを含む構造を有している:
int item_get_type(const struct item * i);
struct user * item_get_owner(const struct item * i);
私の質問は、第二についてです。このように、私もアクセサ関数を持っている
struct item
{
int type;
struct user *owner;
};
をこれらの機能:これはconstの使用に関していかなる規則やベストプラクティスにも違反していますか?
ここでconstを使用するのは、アクセサー関数が渡された構造体を変更しないで、呼び出し元が返された構造体を変更できることを示すためです。議論の中でconstを削除する方が良いですか?
以下の@Grahamの言葉通り、あなたがやっていることはまったく問題ありません。呼び出し元が返された構造体を変更できないようにする場合は、戻り値の型は 'const struct user *'でした。 –