如果我写下这样的东西:
int f(char x, const int (*g) (const char x)) {
return g(x);
}
前const
个有效地表达了我认为它所说的吗,也就是说,程序员基本上不能改变函数g的code?所以基本上,在将函数指针作为参数传递时,将这const
放入是一种很好的做法?
如果我写下这样的东西:
int f(char x, const int (*g) (const char x)) {
return g(x);
}
前const
个有效地表达了我认为它所说的吗,也就是说,程序员基本上不能改变函数g的code?所以基本上,在将函数指针作为参数传递时,将这const
放入是一种很好的做法?
第一个const
声明返回的int
是不可变的--但这并不重要,因为如果需要的话,接收器会将它复制到非const
的int
中--这正是f()
函数所做的.它调用g()
,而g()
被声明为返回const int
,但f()
返回int
.前const
个将被忽略.
这与更改g()
的代码无关.这在任何情况下都是不允许的.
如果您想明确说明函数指针不会指向f
内的另一个函数:
int f(char x, int (*const g) (const char x))