Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么要用括号将函数括起来呢?

为什么要用括号将函数括起来呢?
EN

Stack Overflow用户
提问于 2013-06-20 06:19:55
回答 1查看 518关注 0票数 2

我展示了一些我确实理解的代码。

下面的代码是示例代码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
static void (_func)(int p);

int main()
{
....
    _func(3);
....
}

static void (_func)(int p)
{
 ....
}

一般来说,我知道用括号括起来的函数是用'*‘表示函数指针作为(*_func)的,但是上面的代码为什么在函数声明时用括号括住函数?

使用这种方法有什么原因吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-20 08:02:22

用括号括起函数名可以防止它被同名的类函数宏“覆盖”。

例如,有时一个函数可能被实现为宏,但它也可能需要被实现为一个实际的函数(其中一个原因可能是为了获得指向它的指针)。此API的实现者可能会将函数名的声明和实际的函数实现用括号括起来,这样就不会与宏名冲突。

然后,API的用户可以决定,无论出于什么原因,如果他们想要使用实际的函数而不是宏,他们可以使用#undef _func或使用括号中的函数名来避免使用宏。

如C99 7.1.4“库函数的使用”中所述:

头中声明的任何函数都可以额外实现为头中定义的类似函数的宏,因此,如果库函数在包含其头时显式声明,则可以使用下面所示的技术之一来确保声明不受此类宏的影响。函数的任何宏定义都可以通过将函数的名称括在括号中来在本地取消,因为该名称后面没有表示宏函数名展开的左括号。出于相同的语法原因,允许使用库函数的地址,即使它也被定义为宏。使用#undef删除任何宏定义也将确保引用实际的函数。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17206551

复制
相关文章
分库分表,我为什么要用Shardingsphere呢?
分库分表推荐Spring Cloud Alibaba+Seata+Shardingsphere
35岁程序员那些事
2022/09/23
1.5K0
代码块:在Java中用{}括起来的代码
 (1)在Java中用{}括起来的代码。 (2)代码块分类:(根据其位置和声明的不同) A:局部代码块       在方法定义中,用于限定变量的生命周期,及早释放,提高内存利用率。 B:构造代码块       在类中方法外出现(即在类中的成员位置),可以把多个构造方法方法中相同的代码存放到一起,用于对对象进行初始化,每次调用构造方法都执行,并且在构造方法前执行。 C:静态代码块       在类中方法外出现(即在类中的成员位置),并加上static修饰,用于对类进行初始化,静态在类加载的时候就执行了,并且只执行一次。 D:同步代码块       多线程部分讲解。 (3)面试题:     静态代码块、构造代码块、构造方法的执行顺序问题?
黑泽君
2018/10/11
8820
为什么要用Redis
最近阅读了《Redis开发与运维》,非常不错。这里对书中的知识整理一下,方便自己回顾一下Redis的整个体系,来对相关知识点查漏补缺。
大愚
2018/09/13
2.3K0
为什么要用Redis
为什么要用Docker
最近Docker突然火得不得了,到处都是谈论Docker的声音,相信大家和小编一样的心情,看这个东西有点高大上,但尝试去阅读Docker文章时又发现概念很模糊、不接地气、难以理解、无从下手...于是三天打鱼两天晒网,最终不了了之,反正公司也没要求用这玩意儿,不费劲了...
公众号编程无界
2019/01/22
1.3K0
为什么要用Docker
数据库连接池为什么要用threadlocal呢?(不用会怎样?)
点击上方蓝色“架构师修炼”,选择“设为星标” 这个问题我疑问了很久很久,主要如下截图。 我先说为什么引入threadlocal,其实是为了解决数据库事务,而事务是和连接有关的,每个连接对应一个事务,多
架构师修炼
2021/06/25
2K1
数据库连接池为什么要用threadlocal呢?(不用会怎样?)
为什么要用Restful API风格编写接口,Restful是什么意思呢?
什么是restful? RESTFUL是一种程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义 统一接口标准, 使得不杂乱
贵哥的编程之路
2022/05/06
4820
为什么要用Restful API风格编写接口,Restful是什么意思呢?
为什么要用NoSQL
NoSQL(NoSQL = Not Only SQL ),是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于目前铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。直接点解释就是:适用关系型数据库的时候就使用关系型数据库,不适用的时候也没有必要非使用关系型数据库不可,可以考虑使用更加合适的数据存储。
葆宁
2019/04/18
1.2K0
为什么要用NoSQL
为什么要用TypeScript
TypeScript的设计目的应该是解决JavaScript的“痛点”:弱类型和没有命名空间,导致很难模块化,不适合开发大型程序。另外它还提供了一些语法糖来帮助大家更方便地实践面向对象的编程。
用户7657330
2020/08/14
8610
为什么要用TypeScript
为什么要用Hive?
Hive是Hadoop生态系统中比不可少的一个工具,它提供了一种SQL(结构化查询语言)方言,可以查询存储在Hadoop分布式文件系统(HDFS)中的数据或其他和Hadoop集成的文件系统,如MapR-FS、Amazon的S3和像HBase(Hadoop数据仓库)和Cassandra这样的数据库中的数据。
week
2022/11/26
7310
为什么要用Docker?
一、什么是Dokcer? Docker是一个开源项目, 诞生于2013年初, 最初是dotCloud公司内部的一个业余项目。 它基于Google公司推出的Go语言实现。 项目后来加入了Linux基金会
我是攻城师
2018/05/11
8580
河南这么大的省,为什么IT行业就是发展不起来呢?
“阅读文本大概需要5分钟。” 有个同事,时常加班的时候看他手里拿本公务员考试的秘籍,准备考公务员了,还是很低调的,没事看看题目自己嘴里默默的说几句,很认真的样子,问他是不是要考公务员,他的回答考考试试
IT架构圈
2018/05/31
2.6K1
SpringBoot(十四)缓存还是要用起来
缓存应该是我们每一个系统都应该考虑使用的,这样可以加速系统的访问,提升系统的性能。比如我们经常需要访问的高频数据,将此类数据放在缓存中,可以大幅度提升系统的响应速度。原因就是一般来说我们的数据都是存在数据库中,但是高频的访问数据库不仅会对数据库造成压力,一定程度上还会影响响应速度,影响用户体验。如果引入了缓存,不仅能提升访问性能的同时降低数据库的压力。
全栈学习笔记
2022/03/31
5410
我们为什么要用Kubernetes
它是一个全新的基于容器技术的分布式架构领先方案。这个方案虽然还很新,但它是谷歌十几年以来大规模应用容器技术的经验积累和升华的一个重要成果。确切地说,Kubernetes是谷歌严格保密十几年的秘密武器——Borg的一个开源版本。正是由于站在Borg这个前辈的肩膀上,吸取了Borg过去十年间的经验与教训,所以Kubernetes一经开源就一鸣惊人,并迅速称霸了容器技术领域。
博文视点Broadview
2020/06/11
9840
为什么要用空洞卷积?
空洞卷积(atrous convolutions),又称扩张卷积(dilated convolutions),向卷积层引入了一个成为“扩张率(dilated rate)”的新参数,该参数定义了卷积核处理数据时各值的间距。下图是正常卷积核空洞卷积的动态图对比:
智能算法
2020/02/18
3.6K2
为什么商城项目中要用到事务处理sku呢?什么是电商的sku?呢
因为举个例子,如果你在某宝买东西是把。有些你买的东西的某种规格比如手机的科技黑 标准套餐。哪个标准套餐插入不了数据库中咋整? 事务的优点:要么一起成功,要么就回滚。(还原到原本)
贵哥的编程之路
2022/05/24
4320
为什么商城项目中要用到事务处理sku呢?什么是电商的sku?呢
为什么要用消息队列?
消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。
Java3y
2019/11/22
9310
为什么要用消息队列?
为什么要用分布式架构,又为什么要用微服务?
我用了dubbo后,我就可以这样调接口,巴拉巴拉,说到底还是争不过面试官问:那照你这么说,我不用分布式架构也可以完成啊,你只是说了用了分布式架构后业务处理的方法,并没有弄懂里面的原因。
用户2141593
2019/02/20
2.1K1
为什么要用fish shell
什么是fish,Fish又称为Friendly shell for interactive use。Fish设计之初能兼容其他shell的命令, 并且会比其他shell更友好而且又高效。在一些特性上,fish做了改进,这和其他shell比如bashl是有区别的。体现在一些标识符,一些命令扩展和易用上。
mariolu
2020/02/20
2.4K0
tensorflow为什么要用placeholder()
Tensorflow的设计理念称之为计算流图,在编写程序时,首先构筑整个系统的graph,代码并不会直接生效,这一点和python的其他数值计算库(如Numpy等)不同,graph为静态的,类似于docker中的镜像。然后,在实际的运行时,启动一个session,程序才会真正的运行。这样做的好处就是:避免反复地切换底层程序实际运行的上下文,tensorflow帮你优化整个系统的代码。我们知道,很多python程序的底层为C语言或者其他语言,执行一行脚本,就要切换一次,是有成本的,tensorflow通过计算流图的方式,帮你优化整个session需要执行的代码,还是很有优势的。
狼啸风云
2022/10/05
7060
为什么要用临时容器
在Kubernetes中,临时容器是一种特殊类型的容器,用于在Pod中运行短暂的、不常驻的任务,例如调试、修复或数据备份等。与常规容器不同,临时容器不会一直运行,它们只会在需要时启动,完成任务后就会被删除。
玖叁叁
2023/05/03
8291

相似问题

为什么要用大括号把C代码块括起来呢?

967

为什么要用大括号将document.write括起来

10

为什么在JS中对象要用括号括起来?

30

为什么我们需要用括号将块宏括起来?

23

用括号将函数括起来

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文