C函数指针语法

C函数指针语法,第1张

概述我的问题很简单. 通常,当声明一些变量时,您将其类型放在它之前,如: int a; 函数指针可能具有类型:int(*)(int,int),以防万一我们指向一个使用两个int并返回int的函数.但是,当声明这样的指针时,它的标识符不在类型之后,如: int(*)(int,int) mypointer; 相反,您必须在中间写入标识符: int(*mypointer)(int,int); 为什么这样呢? @H_404_1@我的问题很简单.

通常,当声明一些变量时,您将其类型放在它之前,如:

int a;

函数指针可能具有类型:int(*)(int,int),以防万一我们指向一个使用两个int并返回int的函数.但是,当声明这样的指针时,它的标识符不在类型之后,如:

int(*)(int,int) mypointer;

相反,您必须在中间写入标识符:

int(*mypointer)(int,int);

为什么这样呢?
对不起,我知道这是一个令人尴尬的简单问题

感谢大家的回复.
如.

解决方法 我在 Why was the C syntax for arrays,pointers,and functions designed this way?的答复中解释一下,基本上归结为:

the language authors preferred to make the Syntax variable-centric rather than type-centric. That is,they wanted a programmer to look at the declaration and think “if I write the Expression *func(arg),that’ll result in an int; if I write *arg[N] I’ll have a float” rather than “func must be a pointer to a function taking this and returning that“.

The 07001 claims that:

RitchIE’s IDea was to declare IDentifIErs in contexts resembling their use: “declaration reflects use”.

…citing p122 of K&R2.

总结

以上是内存溢出为你收集整理的C函数指针语法全部内容,希望文章能够帮你解决C函数指针语法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1249993.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存