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

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(使用前将#替换为@)

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

  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • onclick 事件中未调用函数

    我想在每个 YouTube 链接的末尾添加一些 HTML 以在 litebox 中打开播放器 到目前为止 这是我的代码 document ready function var valid url new RegExp youtube com
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template

随机推荐

  • 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