无法理解C 中的功能定位器
Unable to understand function-pointers in c++
我正在阅读 bjarne stroustrup的C 编程语言。它说明了解释功能调子的示例:
int cmp1(const void∗ p, const void∗ q) // Compare name strings
{
return strcmp(static_cast<const User∗>(p)−>name,static_cast<const User∗>(q)−>name);
}
然后在ssort
中使用此cmp1
,类似的东西:
int main()
{
cout << "Heads in alphabetical order:n";
ssort(heads,6,sizeof(User),cmp1);
print_id(heads);
//Rest of function body
}
我的问题是:&cmp1
是在ssort()
中作为参数传递的,因为我们不能将函数作为参数传递,我们只能传递函数点?
我的问题是:
&cmp1
是在ssort()
中作为参数传递的,因为我们不能作为参数传递函数,我们只能传递函数销量?
您的代码不使用&cmp1
。因此,您的问题与您的代码不符。
仍然可以通过不使用addressof
运算符(&
(的函数。
ssort(heads, 6, sizeof(User), &cmp1);
与
相同ssort(heads, 6, sizeof(User), cmp1);
在此上下文中功能指针的功能衰减。
函数名称确实代表了该函数的可执行代码的起始地址。因此,它更像是阵列的名称可以用作阵列本身的指针。也经历https://www.geeksforgeeks.org/function-pointer-in-c/
相关文章:
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- C++没有标准功能的立方体根查找器
- 具有C++迭代器参数的多功能函数
- c++ 链接器错误"针对'.rodata.str1.1'的重新定位R_X86_64_32"链接 CXX 共享库 libsrt.so
- 功能计时器阻止主功能继续
- 无法理解C 中的功能定位器
- 具有模板参数的函数的C 功能包装器
- 使用Boost-pripit的功能解析器
- 如何将std ::功能包装器转换为变异功能
- C 表达式必须是LVALUE或功能指定器
- C - 功能声明器后的预期功能主体-Xcode 9.0
- 是否有标准的静态功能包装器类型模板
- variadic功能包装器
- 具有静态属性(服务定位器模式)的模板继承
- 修改指针后,在c++中取消数组的定位器
- c++解除定位器在强制转换后丢失
- 可组合C++功能装饰器
- 功能比较器可以是静态功能
- 如何为在 .props 文件中声明的非本机 VC 编译器 (GCC) 实现 MSBUILD 文件跟踪功能 (跟踪器.ex
- 我应该在我的所有对象需要时将我的服务定位器传递给他们吗