You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

函数指针声明是否需带参数名?两种写法的功能差异解析

两种函数指针声明的差异分析

这两种写法没有任何功能差异,纯粹是代码风格的区别。

在C语言中,函数指针声明的参数列表里,参数变量名属于可选的冗余信息——编译器只会识别参数的类型,完全忽略这些名称。不管你写不写var,编译器都会将function_ptr的类型解析为void (*)(int),也就是指向“接受一个int类型参数、返回值为void”的函数指针。

比如你给出的两个示例:

  • 声明1:void (*function_ptr)(int) = &function;
  • 声明2:void (*function_ptr)(int var) = &function;

最终function_ptr的类型完全一致,调用function_ptr(5)时的行为也没有任何区别。

带参数名的写法唯一的作用是提升代码可读性,能让后续阅读代码的人快速理解该参数的用途,但对编译结果、程序运行逻辑没有任何影响。

内容的提问来源于stack exchange,提问作者uC_dev_imposter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 06:44:57