函数名两边的括号是什么意思?

2023-11-24

在我的项目源文件之一中,我找到了这个 C 函数定义:

int (foo) (int *bar)
{
    return foo (bar);
}

注意:旁边没有星号foo,所以它不是函数指针。或者是吗? 递归调用发生了什么?


在没有任何预处理器的情况下,foo的签名相当于

int foo (int *bar)

我见过人们在函数名称周围放置看似不必要的括号的唯一情况是,当同时存在同名的函数和类似函数的宏时,并且程序员希望防止宏扩展。

这种做法乍一看可能有点奇怪,但 C 库开创了先例:提供一些具有相同名称的宏和函数.

一对这样的函数/宏是isdigit()。该库可能将其定义如下:

/* the macro */
#define isdigit(c) ...

/* the function */
int (isdigit)(int c) /* avoid the macro through the use of parentheses */
{
  return isdigit(c); /* use the macro */
}

您的函数看起来几乎与上面的相同,所以我怀疑这也是您的代码中发生的情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

函数名两边的括号是什么意思? 的相关文章

  • 属性对象什么时候创建?

    由于属性实际上只是附加到程序集的元数据 这是否意味着属性对象仅根据请求创建 例如当您调用 GetCustomAttributes 时 或者它们是在创建对象时创建的 或者 前两个的组合 在由于 CLR 的属性扫描而创建对象时创建 从 CLR
  • 如何在我的应用程序中使用 Windows Key

    Like Windows Key E Opens a new Explorer Window And Windows Key R Displays the Run command 如何在应用程序的 KeyDown 事件中使用 Windows
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • 我的 strlcpy 版本

    海湾合作委员会 4 4 4 c89 我的程序做了很多字符串处理 我不想使用 strncpy 因为它不会终止 我不能使用 strlcpy 因为它不可移植 只是几个问题 我怎样才能让我的函数正常运行 以确保它完全安全稳定 单元测试 这对于生产来
  • 像“1$”这样的位置参数如何与 printf() 一起使用?

    By man I find printf d width num and printf 2 1 d width num 是等价的 但在我看来 第二种风格应该与以下相同 printf d num width 然而通过测试似乎man是对的 为什
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 可空属性与可空局部变量

    我对以下行为感到困惑Nullable types class TestClass public int value 0 TestClass test new TestClass Now Nullable GetUnderlyingType
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • 将变量分配给另一个变量,并将一个变量的更改反映到另一个变量中

    是否可以将一个变量分配给另一个变量 并且当您更改第二个变量时 更改会瀑布式下降到第一个变量 像这样 int a 0 int b a b 1 现在 b 和 a 都 1 我问这个问题的原因是因为我有 4 个要跟踪的对象 并且我使用名为 curr
  • 更改显示的 DPI 缩放大小使 Qt 应用程序的字体大小渲染得更大

    我使用 Qt 创建了一些 GUI 应用程序 我的 GUI 应用程序包含按钮和单选按钮等控件 当我运行应用程序时 按钮内的按钮和字体看起来正常 当我将显示器的 DPI 缩放大小从 100 更改为 150 或 200 时 无论分辨率如何 控件的
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器

随机推荐

  • Apply 与 Map 的内存使用情况。虚拟内存的使用和锁定

    我需要找到一长串数字对中所有数字对的总和 在 Mathematica 中有很多方法可以做到这一点 但我正在考虑使用其中之一Plus or Total Since Total在列表上工作 Map是在那里使用的函数式编程工具Apply级别 1
  • 在 Python Selenium 中滚动特定 DIV 元素

    我正在尝试做一个简单的 Python Selenium 自动化 其中脚本将单击一个链接 该链接会在页面顶部打开一个对话框 Instagram 个人资料 该对话框将显示关注者列表 但不幸的是包含该列表的 UL 将仅显示前 12 个关注者 或
  • 运行 Inno Setup 安装程序时如何修改 PATH 环境变量?

    Inno Setup 允许您通过 Registry 部分设置环境变量 通过设置与环境变量相对应的注册表项 然而 有时您不仅仅想设置环境变量 通常 您想修改它 例如 安装时 人们可能想要向 PATH 环境变量添加 删除目录 如何从 InnoS
  • 类和函数模板实例化的 Visual Studio dll 导出问题

    我在 win7 中使用 VS2008 在 CentOS 18 中使用 g 4 7 只有当我使用动态共享库时 才会在 Windows 上出现该问题 当我将其转换为静态库时 程序链接正常 据我所知 在共享库模板函数 类中 要么应该在头文件中定义
  • sqlite3_column_text 返回的数据在完成/关闭期间被损坏

    我不确定这里发生了什么 但我发现从 sqlite3 column text 返回的数据在 Finalize close sqlite 阶段被更改 rc not handled in this abbreviated code sqlite3
  • 在 Prolog 中使用差异列表的上下文无关语法如何运作?

    我正在阅读有关 Prolog 中上下文无关语法的教程 他们在页面底部提到使用差异列表在 Prolog 中实现上下文无关语法 其中包括以下代码块 s X Z np X Y vp Y Z np X Z det X Y n Y Z vp X Z
  • 使用 ggplot 库中的 geom_path

    我有12个变量 M1 M2 M12 我为此计算了某个统计量x df data frame model factor paste M 1 28 sep levels paste M 1 28 sep x runif 28 1 1 05 lev
  • ios中如何将数据存储到NSCache中?

    我对 NSCache 很陌生 我有一个 API 调用 它会产生多个对象 如何将这些对象存储在 NSCache 中 以便我不需要再次调用 API NSCache 中可以存储多少数据 NSCache 中存储数据是否有特定限制 请帮我 看一眼文档
  • 如何使用 jQuery 防止用户更改页面

    我有一个页面 其中包含通过 ajaxSubmit 提交的表单 因此 无需更改页面 我的目标是 当用户尝试更改页面 甚至关闭浏览器 时 我询问他是否真的想退出页面而不发送表单 正如 gmail 所做的那样 例如 Gmail 通过类似 wind
  • 属性错误:“响应”对象没有属性“文本”

    page requests get url tree html fromstring page text 在第 2 行我得到 AttributeError Response object has no attribute text 我已导入
  • 关于不可变字符串的改变id

    一些关于id类型的对象str 在Python 2 7中 让我困惑 这str类型是不可变的 所以我希望一旦创建它 它将始终具有相同的id 我相信我的表述不太好 所以我将发布一个输入和输出序列的示例 gt gt gt id so 1406141
  • 转义百分号 DB2 SQL

    我正在尝试选择连续包含四个百分号的数据 如何转义百分号以便我的 LIKE 条件起作用 Thanks Use 使用转义字符子句 select from tbl where fld like escape 这将搜索包含以下内容的所有记录 中的字
  • 从 .ttf 生成 .afm [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在使用这个库从 PHP 生成 pdf 文件 http www fpdf org 不过 我目前正忙着添加新字体 特别是从 ttf 字体文件生成 afm 文件的步骤 我正在按照此处的
  • 如何在 Android 中按定义的时间间隔运行可运行线程?

    我开发了一个应用程序 用于在 Android 模拟器屏幕中按定义的时间间隔显示一些文本 我正在使用Handler班级 这是我的代码片段 handler new Handler Runnable r new Runnable public v
  • 不使用 ATL 实现 COM IDispatch

    我正在编写一个 Excel RTD 服务器实现 但我陷入了实现的 coclass 的样板中IDispatch 我无法访问 ATL 但我正在使用 ActiveQt 尽管我也对如何在原始 C 或 C 中执行此操作感兴趣 如何正确实施IDispa
  • Python:使用打印命令避免换行[重复]

    这个问题在这里已经有答案了 当我使用print命令 它打印我想要的任何内容 然后转到不同的行 例如 print this should be print on the same line 应该返回 这应该在同一行 但相反返回 这应该是在同一
  • 仅当 URL 具有某些参数时才显示引导程序模式

    有没有办法使用 Bootstrap 的模态功能来评估参数的 URL 并自动打开模态 例如 访问该网站的 URL 的访问者 example com没有看到模态 他们只看到常规网站 访问者通过 URL 访问该网站example com offe
  • Python 编程 - numpy polyfit 说 NAN

    我编写的非常简单的代码遇到了一些问题 我有 4 组数据 想要使用 numpy polyfit 生成多项式最佳拟合线 使用 Polyfit 时 其中 3 个列表会产生数字 但使用 Polyfit 时 第三个数据集会产生 NAN 下面是代码和打
  • 如何按字符串过滤pandas数据框?

    我有一个 pandas 数据框 我想按列中的特定单词 测试 进行过滤 我试过 df df col str contains test 但它返回一个空数据框 仅包含列名称 对于输出 我正在寻找一个包含所有包含单词 test 的行的数据框 我能
  • 函数名两边的括号是什么意思?

    在我的项目源文件之一中 我找到了这个 C 函数定义 int foo int bar return foo bar 注意 旁边没有星号foo 所以它不是函数指针 或者是吗 递归调用发生了什么 在没有任何预处理器的情况下 foo的签名相当于 i