gpt4 book ai didi

const 导致 "formal parameter different from declaration"警告

转载 作者:行者123 更新时间:2023-11-30 15:12:27 25 4
gpt4 key购买 nike

我看到了有关此主题的多个问题(例如 this one ),但没有一个问题能解释我所看到的确切行为。

我有两个函数,每个函数都声明和定义如下:

void PntCreate(Handle *cv);
void PntCreate(Handle * const cv)
{
//...
}

ErrorCodes wim2Read(const char *fileName, cdCanvas *cv,
int onViewport);
ErrorCodes wim2Read(const char * const fileName, cdCanvas * const cv,
const int onViewport)
{
//...
}

声明和定义仅更改 const 限定符。从上面链接的问题中,我知道这可能会导致警告,因为它们不完全匹配。然而,我感到好奇的是,该警告仅出现在 PntCreate 中,而不会出现在 wim2Read 中。

这里发生了什么?我认为这可能是因为 PntCreate 的参数是一个结构体,但 wim2Read 的第二个参数也是一个结构体...

最佳答案

您的问题是 wim2Read 定义中的 cv 是指向 Canvas 的指针,而不是指向 cdCanvas 的指针嗯>。 PntCreatewim2Read 中的 const 对调用者和实现之间的契约没有影响,因为参数是按值传递的。

关于const 导致 "formal parameter different from declaration"警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35068096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com