C语法问题

weixin_44346860 2019-11-07 02:00:11
int  (*fun(int a,int b,void *p))[3]
{
//见过这种函数的写法吗?
}
...全文
79 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_44346860 2019-11-29
  • 打赏
  • 举报
回复
引用 18 楼 lin5161678 的回复:
[quote=引用 17 楼 ggglivw 的回复:] 不习惯这样的写法. 如果要返回数组,我一般用引用的方式,正常的返回值只返回这个函数调用的结果,成功或者那种失败结果
返回数组这个想法本身就不切实际 不管是返回 数组指针 还是返回数组引用都一样不好 属于失败的接口设计[/quote] 是的,我是赞同函数传对象的指针过来,函数内部把数据放回调用者的对象里面的。但是BOSS也是搞技术的,BOSS要求必要传指针他用指针来访问需要的数据....... 不用跟BOSS讲道理,BOSS就是道理
lin5161678 2019-11-07
  • 打赏
  • 举报
回复
引用 17 楼 ggglivw 的回复:
不习惯这样的写法. 如果要返回数组,我一般用引用的方式,正常的返回值只返回这个函数调用的结果,成功或者那种失败结果
返回数组这个想法本身就不切实际 不管是返回 数组指针 还是返回数组引用都一样不好 属于失败的接口设计
ggglivw 2019-11-07
  • 打赏
  • 举报
回复
不习惯这样的写法. 如果要返回数组,我一般用引用的方式,正常的返回值只返回这个函数调用的结果,成功或者那种失败结果
lin5161678 2019-11-07
  • 打赏
  • 举报
回复
引用 15 楼 weixin_44346860 的回复:
*号我感觉应该写在括号外面,就跟形参可以为数组形式一样,实际上传的还是数组首地址,这个[3]我也觉得应该写在前面
你仔细的描绘了一个错误的函数头
weixin_44346860 2019-11-07
  • 打赏
  • 举报
回复
引用 14 楼 lin5161678 的回复:
[quote=引用 13 楼 weixin_44346860 的回复:] [quote=引用 12 楼 lin5161678 的回复:] 顺便鄙视一下 这种写法没什么价值 不会有人写一个这样的函数
但是我遇上了,我猜测返回值是一个数组地址的函数,但这样的话fun前面好像就没必要加个*号了吧?[/quote] 返回数组指针 不加*号是不行的 不存在返回数组这种操作 数组类型不允许作为函数返回值类型 [/quote] *号我感觉应该写在括号外面,就跟形参可以为数组形式一样,实际上传的还是数组首地址,这个[3]我也觉得应该写在前面
lin5161678 2019-11-07
  • 打赏
  • 举报
回复
引用 13 楼 weixin_44346860 的回复:
[quote=引用 12 楼 lin5161678 的回复:] 顺便鄙视一下 这种写法没什么价值 不会有人写一个这样的函数
但是我遇上了,我猜测返回值是一个数组地址的函数,但这样的话fun前面好像就没必要加个*号了吧?[/quote] 返回数组指针 不加*号是不行的 不存在返回数组这种操作 数组类型不允许作为函数返回值类型
weixin_44346860 2019-11-07
  • 打赏
  • 举报
回复
引用 12 楼 lin5161678 的回复:
顺便鄙视一下 这种写法没什么价值 不会有人写一个这样的函数
但是我遇上了,我猜测返回值是一个数组地址的函数,但这样的话fun前面好像就没必要加个*号了吧?
lin5161678 2019-11-07
  • 打赏
  • 举报
回复
顺便鄙视一下 这种写法没什么价值 不会有人写一个这样的函数
lin5161678 2019-11-07
  • 打赏
  • 举报
回复
返回值类型
lin5161678 2019-11-07
  • 打赏
  • 举报
回复
返回值是数组指针的 函数
weixin_44346860 2019-11-07
  • 打赏
  • 举报
回复
int  (*fun(int a,int b,void *p))[3]
{
  //见过这种函数的写法吗?
 int x,y;
 x=0;
 y=0;
 ......
}
能编译过的,
weixin_44346860 2019-11-07
  • 打赏
  • 举报
回复
引用 7 楼 SuperDay 的回复:
[quote=引用 6 楼 自信男孩的回复:]函数指针数组。指向的是三个参数,参数分别是int, int, void *类型的并且返回值是int
可是下面有花括号是几个意思呢?[/quote] 看来C语言还是很难的,花括号里面是写程序代码的,因为这是定义的一个函数,尽管看起来像是定义的一个数组
铖邑 2019-11-07
  • 打赏
  • 举报
回复
引用 6 楼 自信男孩的回复:
函数指针数组。指向的是三个参数,参数分别是int, int, void *类型的并且返回值是int
可是下面有花括号是几个意思呢?
自信男孩 2019-11-07
  • 打赏
  • 举报
回复
函数指针数组。指向的是三个参数,参数分别是int, int, void *类型的并且返回值是int
weixin_44346860 2019-11-07
  • 打赏
  • 举报
回复
引用 4 楼 SuperDay 的回复:
没见过,可以编译过去吗?
当然是可以编译过去的
铖邑 2019-11-07
  • 打赏
  • 举报
回复
没见过,可以编译过去吗?
weixin_44346860 2019-11-07
  • 打赏
  • 举报
回复
是什么意思?
weixin_44346860 2019-11-07
  • 打赏
  • 举报
回复

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧