此问题已在此处有答案:
What is meaning of a pointer to a constant function?(6个回答)
上个月关门了。
如果我这样写:
int f(char x, const int (*g) (const char x)) {
return g(x);
}
第一个const
是否有效地表达了我认为它所说的内容,即程序员基本上不能更改函数g的代码?所以基本上,当传递函数指针作为参数时,把这些const
放在里面是一个很好的做法。
此问题已在此处有答案:
What is meaning of a pointer to a constant function?(6个回答)
上个月关门了。
如果我这样写:
int f(char x, const int (*g) (const char x)) {
return g(x);
}
第一个const
是否有效地表达了我认为它所说的内容,即程序员基本上不能更改函数g的代码?所以基本上,当传递函数指针作为参数时,把这些const
放在里面是一个很好的做法。
1条答案
按热度按时间lnxxn5zx1#
第一个
const
声明返回的int
是不可变的,但这并不重要,因为如果需要的话,接收者会将其复制到非const
int
中,这正是f()
函数所做的。它调用g()
,声明为返回const int
,但f()
返回int
。第一个const
将被忽略。这与更改
g()
的代码无关。在任何情况下都不允许。如果你想明确一点,函数指针不会指向
f
中的另一个函数: