我的功能如下
void foo(const foo_type* x)
{...}
我在其他功能中调用此函数。
void foo1(int z)
{
foo_type y = z;
foo(&y);
}
这不会在c中引发任何错误,但我觉得有些不正确。 当我将非const变量传递给期望将const变量作为参数的函数时会发生什么。
答案 0 :(得分:5)
const
的介绍,你的方式非常好和甚至是可取的。
您已明确告知编译器该函数不会修改作为const
传递的参数。这甚至可以帮助编译器的优化策略。
const
的删除通常是一个坏主意。 (在这种情况下,您不会这样做。)通过删除最初声明为const
的{{1}}来修改变量的行为是 undefined 。< / p>