一个函数指针作为一个函数参数-应该const它?[副本]

ezykj2lf  于 2023-10-16  发布在  其他
关注(0)|答案(1)|浏览(103)

此问题已在此处有答案

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放在里面是一个很好的做法。

lnxxn5zx

lnxxn5zx1#

第一个const声明返回的int是不可变的,但这并不重要,因为如果需要的话,接收者会将其复制到非constint中,这正是f()函数所做的。它调用g(),声明为返回const int,但f()返回int。第一个const将被忽略。
这与更改g()的代码无关。在任何情况下都不允许。
如果你想明确一点,函数指针不会指向f中的另一个函数:

int f(char x, int (*const g) (const char x))

相关问题