前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基础知识 | 每日一面(11)

基础知识 | 每日一面(11)

作者头像
小林C语言
发布2019-12-20 11:41:03
2250
发布2019-12-20 11:41:03
举报
文章被收录于专栏:C语言入门到精通
读者:我总算弄清除函数指针的声明方法了, 但怎样才能初始化呢?

小林:用下面这样的代码

extern int func();

int (*fp)() = func;

当一个函数名出现在这样的表达式中时, 它就会 “蜕变” 成一个指针 , 这有点类似数组名的行为。通常函数的显示声明需要事先知道。因为此处并没有隐式的外部函数声明 (初始式中函数名并非一个函数调用的一部分)。

读者:声明 struct x1 { ...}; 和 typedef struct { ...} x2; 有什么不同?

小林:第一种形式声明了一个 “结构标签”; 第二种声明了一个 “类型定义”。主要的区别是在后文中你需要用 “struct x1” 引用第一种, 而用 “x2” 引用第二种。也就是说, 第二种声明更像一种抽象类新 —– 用户不必知道它是一个结构, 而在声明它的实例时也不需要使用 struct 关键字。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 C语言入门到精通 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档