C++ 中的可变参数函数声明中省略了逗号

2024-05-05

我习惯于这样声明可变参数函数:

int f(int n, ...);

读书时C++ 编程语言我发现书中的声明省略了逗号:

int f(int n...); // the comma has been omitted

这个语法似乎是 C++ 特定的,因为当我尝试使用 C 编译器编译它时出现此错误:

test.c:1:12: error: expected ‘;’, ‘,’ or ‘)’ before ‘...’ token int f(int n...);

写法有什么区别吗int f(int n, ...) and int f(int n...)?

为什么 C++ 添加了这个语法?


根据 C++ 标准第 8.3.5.4 条(当前草案 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf):

语法正确且“...”不属于 抽象声明符“, ...”与“...”同义。

简而言之,在 C++ 中...(省略号)本身就是一个运算符,因此可以在不使用逗号的情况下使用,但保留逗号的使用是为了向后兼容。

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

C++ 中的可变参数函数声明中省略了逗号 的相关文章

  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 按成员序列化

    我已经实现了template
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • jQuery AJAX 或 XHR 请求从完成回调触发失败回调

    在我的 jQuery XHR 的完成处理程序 从 get 调用创建 中是否有一种方法可以查找响应中的问题 然后使用自定义错误消息触发注册的后续处理程序 即失败和始终 像这样的东西 get URL done function data sta
  • Gem .gemspec 中的本地依赖关系

    我正在开发一个 gem Gem A 它使用了我也编写的另一个 gem Gem B 到目前为止 Gem B 已添加到 Gem A 的 gemspec 中 gem add dependency gem a gt 0 0 4 但我现在发现需要使用
  • 在闪亮的应用程序中选择文件夹或文件夹目录

    我在使用闪亮时遇到问题 我想选择保存我要在应用程序中使用的所有文件的文件夹 方法是 1 将工作目录设置为该文件夹路径 或 2 将此文件夹内的所有 csv 数据上传到我的应用程序以进行进一步处理 1 我找到了shinyFiles包 但它非常非
  • 在 (PHP/GD) 中调整图像大小

    我正在寻找帮助 建议 以找到最有效的方法来使用以下方法将图像大小调整为尽可能小PHP GD同时保留原始图像的纵横比 但确保调整后的图像大于定义的最小宽度和高度 例如 调整大小后的图像必须具有宽度 gt 400 且高度 gt 300但应尽可能
  • FirebaseIndexRecyclerAdapter onDataChanged 被调用但 getItemCount() 始终返回 0

    我在用着FirebaseIndexRecyclerAdapter https github com firebase FirebaseUI Android blob master database src main java com fir
  • lambda 始终返回“1”

    有这样的代码 include
  • 如何根据 URL 路径添加 CSS 类?

    如何根据我所在的路径将 CSS 类添加到 div 中 包括如果我在其中包含 则不应该出现问题 div class popup ul li a href vs Example 1 a li li a href bod Example 2 a
  • xcodebuild 失败,返回代码:65 - 使用 CLI/Appcenter 但没有错误消息

    我已将 React Native 应用程序升级到 0 59 现在当我尝试使用 AppCenter 或 CLI 存档我的应 用程序时 我收到错误代码 65 但没有任何消息解释问题 当我直接从 Xcode 构建时 Xcode版本 10 2 1
  • C++ 最大非负整数

    以下内容是否会在所有平台 int 大小等上按预期工作 或者有更容易接受的方法吗 我做了以下的事情 define MAX NON NEGATIVE INT int unsigned int 1 2 我不会通过解释它在做什么来侮辱你的智商 编辑
  • 嵌套过滤器:$filter 数组,然后是 $filter 子数组

    本质上 我试图过滤掉已被 废弃 的子文档和子子文档 这是我的架构的精简版本 permitSchema id name feeClassifications new Schema id trashed name fees new Schema
  • 动态元素 ID 到 setId(int) - Android

    我看到了语法定义setId int and findViewByID int 但我们如何使用findViewById R id row1 我尝试使用这个 Object1 setId Integer parseInt repeat 它没有显示
  • 深层链接给出空路径

    我在实施 DeepLinks 时遇到问题 我可以从 myapp myapp com route 等 URL 打开该应用程序 但它不处理它的路径 它只是打开程序 我用以下命令打开它 this deeplinks route route Rou
  • 更改单击后退按钮上的 BottomNavigationView 图标

    在我的布局的底部有一个底部导航视图与三个片段 如果我单击后退按钮 片段将切换 但底部图标不会切换 我该如何修复它 addToBackStack 有效 也许您有一些关于美化代码的建议 在活动或片段中添加片段标签是一个好的做法吗 public
  • Web 服务 SOAP 请求适用于 SOAPUI,但不适用于 PHP

    我已经尝试了几乎所有我能找到的可能的解决方案 但我似乎无法让这个脚本工作 以下是我之前的一些尝试 如何使用 wse php 库通过 SOAP 连接到安全的 Web 服务 https stackoverflow com questions 1
  • Jquery - 自动计算输入字段

    我正在尝试使下面的代码正常工作 我非常感谢您的帮助 基本上它是计算三个输入字段的总和 然后与其他两个字段相乘 最终结果应显示在输入字段 pcamount 中 这是 jsFiddle 中的示例 http jsfiddle net D98PW
  • 将信号/槽(QObject)添加到 QGraphicsItem:性能受到影响?

    我想将信号 槽添加到 QGraphicsItem 以便我可以从另一个线程访问 QGraphicsItemObjects 我知道有两个选项 使用 QGraphicsObject 或从 QObject 和 QGraphicsItem 继承 使用
  • Microsoft Visual C++ 2008 和 R2007b 的 Mex 类型

    我想对 vs2008 和 matlab2007b 使用 mex 类型 我尝试了下面的代码 include
  • __libc_start_main 发生了什么?

    我真的很想理解从高级代码到可执行文件的步骤 但是遇到了一些困难 我写了一个空的int main C 文件并尝试通过以下方式破译反汇编objdump d 这是发生的事情 in start 设置对齐方式 将参数压入堆栈 调用 libc star
  • 带 LiveData 的嵌套观察者(观察观察者)

    我有一个案例 我有 BottomNavigationView 其中片段被显示 隐藏而不是添加 替换 因此它们不会每次都经历生命周期 片段1正在观察一个数据库表 片段2正在观察一个不同的 我的目标是调用 onChanged片段2当 on 改变
  • C++ 中的可变参数函数声明中省略了逗号

    我习惯于这样声明可变参数函数 int f int n 读书时C 编程语言我发现书中的声明省略了逗号 int f int n the comma has been omitted 这个语法似乎是 C 特定的 因为当我尝试使用 C 编译器编译它