社区
新手乐园
帖子详情
关于函数声明。
Dan1980
2006-05-13 02:11:10
我要声明一个无参的函数,这个函数返回一个指向无返回值、以char*为参数的函数的指针,试了很多种方式都不行,只好用typedef声明如下:
typedef void (*F)(char*);
F* f();
后来无意中从Eclipse给出的提示信息中,发现上面声明的f()函数实际上是:
void (**f())(char*)
百思不得其解。谁能解释一下么?
...全文
157
8
打赏
收藏
关于函数声明。
我要声明一个无参的函数,这个函数返回一个指向无返回值、以char*为参数的函数的指针,试了很多种方式都不行,只好用typedef声明如下: typedef void (*F)(char*); F* f(); 后来无意中从Eclipse给出的提示信息中,发现上面声明的f()函数实际上是: void (**f())(char*) 百思不得其解。谁能解释一下么?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Dan1980
2006-05-15
打赏
举报
回复
哎呀,分给错了,一楼的“cunsh(村少)”没给分,再次向你致谢吧,谢谢了。
aniude
2006-05-13
打赏
举报
回复
或者这样定义
typedef void (**F)(char *);
F *f()
aniude
2006-05-13
打赏
举报
回复
typedef void (*F)(char *);
这里的F就是一个函数指针,他指向的函数返回值是void,参数为char *
F f() 这里返回的是指向F的函数指针
F *f() f()已经返回的是指针,*f()指向的自然是指向指针的指针。
jixingzhong
2006-05-13
打赏
举报
回复
注意楼主你定义的时候 是 F* f();
里面有一个 * 号唉 !!!
0黄瓜0
2006-05-13
打赏
举报
回复
typedef void (*F)(char*);//F是函数指针类型
F* f();//申明一个无参函数,返回一个函数指针的指针
F f();//申明一个无参函数,返回一个函数指针
我要声明一个无参的函数,这个函数返回一个指向无返回值、以char*为参数的函数的指针
----------->>
不用typedef 写为void (* f())(char*); 把void(*)(char*)看做一个整体,是f()的返回值。
铖邑
2006-05-13
打赏
举报
回复
F f();
cunsh
2006-05-13
打赏
举报
回复
void (*f())(char*)
从里向外读.先右边再左边.
不过最好还是用typedef
Dan1980
2006-05-13
打赏
举报
回复
哦,谢谢大家。
是我搞错了,应该是
typedef void (*F)(char*);
F f();
实际声明是:
void (*f())(char*)
谁能说说读这种复杂声明的决窍吗?
C/C++ 指针的13份资料
C/C++ 指针的13份资料 内容丰富,让编程人员不再害怕指针
JS中的
函数声明
和函数表达式
JS中的
函数声明
和函数表达式 1.
函数声明
定义一个具有指定参数的函数
函数声明
提升,
函数声明
在JS解析时进行函数提升,因此在同一个作用域内,不管
函数声明
在哪里定义,该函数都可以进行调用 hoisted(); // logs “foo” function hoisted() { console.log(‘foo’); } 2. 函数表达式function 关键字可以用来在一个表达式中定义一个函数 函数表达式提升, JavaScript中的函数表达式没有提升,不像
函数声明
,你在定义函数表达式之前
C++关于
函数声明
定义的位置
不知道刚开始学函数这块时,总以为要把
函数声明
放在函数定义前面,甚至有一种陷入框架的感觉,所以在此对此进行一下反思: 根据C89规定,在任何执行语句之前,在块的开头声明所有局部变量。在C99以及C++中则没有这个限制,即在首次使用之前,可在块的任何位置都可以声明变量。也就是说只要在你调用函数前,能让编译器找到你的调用函数的信息就可以了,并不一定是要在前面的。 我便搞了个代码试试: 代码一: in...
函数声明
(Function Declaration)和函数原型(Function Protostyle)
今天在看C++ prime plus,注意这个plus。在此,给出个人对这本书的建议,假若个人有一定的编程经验想学习C++的,强烈推荐C++ prime这本书,注意后面没有plus。回归正题,简单的说一下所谓的
函数声明
和函数原型。 关于
函数声明
和函数原型有什么区别呢? 在网上查阅了大量的中文博客,也没有说明两者具体区别,但是标题依旧是两者的区别。 在此贴上知乎上谭叙的讲解。 函数原型在c++中就...
函数声明
与函数表达式
接下来的语句是函数quack的声明,因为已经处理过了,所以浏览器跳过声明,接着执行后面的条件语句。找到
函数声明
时,浏览器创建相应的函数,并将得到的函数引用赋给与函数同名的变量。如果语句以function关键字开头,那么它就是一个
函数声明
,否则就是一个函数表达式。在语句(如赋值语句)中,以这样的方式使用关键function时,创建的是函数表达式。从更高的角度来看,
函数声明
对于创建独立的函数很有用,但是函数表达式作为回调很好。处理所有的
函数声明
后,浏览器回到代码开头,开始按从头到尾的顺序执行代码。
新手乐园
33,321
社区成员
41,774
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章