【问题标题】:const pointer to const inside srtuct in function prototype指向函数原型中 srtuct 内 const 的 const 指针
【发布时间】:2018-01-27 10:31:24
【问题描述】:

我有以下结构:

struct foo
{
    ...
    char* cp;
};

我想将struct foo 类型指针传递给函数,但我希望函数将指针转换为const char* const cp,并且我不希望const 限定符作为@ 定义的一部分987654326@。将函数声明为:

void func (const struct foo* foo_i);

将确保指针cp 不变,但它指向的数据不变。有没有办法声明函数以确保数据也是只读的?

【问题讨论】:

  • 所以你想把红色的车当成蓝色的车而不用喷漆?
  • 这根本不可能。除了使cp 成为指向const char 的指针。
  • 您能否详细说明为什么您想要这个?您想解决的真正问题是什么?请read about the XY problem 想想这个问题(以目前的形式)是否可能是一个问题?
  • @Someprogrammerdude 我认为我的问题不属于 XY 类别。显然,函数应该接受指向const 的指针以确保数据不会更改是有充分理由的。有很多函数可以接受这样的const 指针,或者const 的const 数组,其中const 不是类型定义的一部分(例如,查看aio_suspend)。我只是问当指针在struct 内时如何声明函数
  • @alk,添加 const 限定符不会改变类型,这是红车与蓝车的问题吗?

标签: c pointers struct constants


【解决方案1】:

你所描述的是不可能。

考虑将cp 设为const char* 类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-18
    • 2012-08-04
    • 2021-12-08
    • 2012-03-15
    相关资源
    最近更新 更多