我有:
typedef struct LIST *List;
和
struct LIST
{
Node *head;
int numNodes;
};
如果我想将List的实例传递给函数并将值指向常量,那么适当的原型会是什么样的?
到目前为止,我已经尝试了原型看起来像这样的函数:
void func1(const List list);
和
void func2(List const list);
两者似乎都保持指针本身不变,似乎两者似乎都没有使值指向常量。
非常感谢任何帮助:)
答案 0 :(得分:2)
两者似乎都保持指针本身不变,似乎两者似乎都没有使值指向常量。
如果他们打算继续并将类型视为指针,那么为什么不应该隐藏指针语义。摆脱混淆的typedef:
void func1(struct LIST const *p_list);
任何尝试重新排序相对于该类型的const
都是红鲱鱼。 “领先const的常见情况是误导”。