如何将结构指针传递给具有常量值

时间:2017-11-18 17:36:45

标签: c pointers arguments

我有:

typedef struct LIST *List;

struct LIST
{
 Node *head;
 int numNodes;
};

如果我想将List的实例传递给函数并将值指向常量,那么适当的原型会是什么样的?

到目前为止,我已经尝试了原型看起来像这样的函数:

void func1(const List list);

void func2(List const list);

两者似乎都保持指针本身不变,似乎两者似乎都没有使值指向常量。

非常感谢任何帮助:)

1 个答案:

答案 0 :(得分:2)

  

两者似乎都保持指针本身不变,似乎两者似乎都没有使值指向常量。

如果他们打算继续并将类型视为指针,那么为什么不应该隐藏指针语义。摆脱混淆的typedef:

void func1(struct LIST const *p_list);

任何尝试重新排序相对于该类型的const都是红鲱鱼。 “领先const的常见情况是误导”。