为什么用逗号进行双重初始化是非法的?

2023-12-05

我有三个代码片段。这个:

1,7; //yes, that's all the code

编译没问题。这个:

double d = (1, 7);

也编译没问题。然而这个:

double d = 1, 7;

编译失败。 gcc-4.3.4 说

错误:在数字常量之前预期有不合格的 id

Visual C++ 10 说

错误 C2059:语法错误:“常量”

为什么会有这样的差异?为什么这三个都不用编译,三者的效果相同吗?


在前两种情况下,语句使用 C++逗号运算符

在后一种情况下,逗号被用作变量分隔符,编译器希望您声明多个标识符;此处不使用逗号作为运算符。

最后一种情况类似于:

float x,y;
float a = 10, b = 20;

当你这样做时:

double d = 1, 7;

编译器需要变量标识符而不是数字常量。因此 7 在这里是非法的。

然而,当你这样做时:

double d = (1,7);

使用普通的逗号运算符:1 被求值并丢弃,而 7 被存储在 d 中。

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

为什么用逗号进行双重初始化是非法的? 的相关文章

  • 每个托管线程是否都有自己对应的本机线程?

    我想知道是否在 Net 中创建托管线程 通过调用Thread Start 导致在后台创建一个本机线程 那么托管线程是否有对应的本机线程呢 如果是 当托管线程等待或睡眠时 是否意味着相应的本机线程也在等待或睡眠 是的 NET 线程映射到所有当
  • 如何在 .NET Framework 2.0 中模拟“Func<(Of <(TResult>)>) 委托”?

    我尝试使用这个类代码项目文章 http www codeproject com KB threads AsyncVar aspx在 VB NET 和 NET Framework 2 0 中 除了这一行之外 所有内容似乎都可以编译Privat
  • 在 LINQ 中按 Id 连接多表和分组

    我想按categoryId显示列表产品的名称组 这是我的代码 我想要我的视图显示结果 Desktop PC HP Red PC Dell Yellow PC Asus Red SmartPhone Lumia 720 Blue 我的组模型
  • 单个对象的 Monogame XNA 变换矩阵?

    我读过一些解释 XNA Monogame 变换矩阵的教程 问题是这些矩阵应用于 SpriteBatch Begin matrix 这意味着所有 Draw 代码都将被转换 如何将变换矩阵应用于单个可绘制对象 就我而言 我想转换滚动背景 使其自
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 我可以使用 moq Mock 来模拟类而不是接口吗?

    正在经历https github com Moq moq4 wiki Quickstart https github com Moq moq4 wiki Quickstart 我看到它 Mock 一个接口 我的遗留代码中有一个没有接口的类
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • 如何在 32 位或 64 位配置中以编程方式运行任何 CPU .NET 可执行文件?

    我有一个可在 32 位和 64 位处理器上运行的 C 应用程序 我试图枚举给定系统上所有进程的模块 当尝试从 64 位应用程序枚举 32 位进程模块时 这会出现问题 Windows 或 NET 禁止它 我认为如果我可以从应用程序内部重新启动
  • C# HashSet 只读解决方法

    这是示例代码 static class Store private static List
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • 使用管道时,如果子进程数量大于处理器数量,进程是否会被阻塞?

    当子进程数量很大时 我的程序停止运行 我不知道问题是什么 但我猜子进程在运行时以某种方式被阻止 下面是该程序的主要工作流程 void function int process num int i initial variables for
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • 为什么 gcc 抱怨“错误:模板参数 '0' 的类型 'intT' 取决于模板参数”?

    我的编译器是gcc 4 9 0 以下代码无法编译 template
  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • C++ 条件编译

    我有以下代码片段 ifdef DO LOG define log p record p else define log p endif void record char data 现在如果我打电话log hello world 在我的代码中
  • WebSocket安全连接自签名证书

    目标是一个与用户电脑上安装的 C 应用程序交换信息的 Web 应用程序 客户端应用程序是 websocket 服务器 浏览器是 websocket 客户端 最后 用户浏览器中的 websocket 客户端通过 Angular 持久创建 并且
  • 当从finally中抛出异常时,Catch块不会被评估

    出现这个问题的原因是之前在 NET 4 0 中运行的代码在 NET 4 5 中因未处理的异常而失败 部分原因是 try finallys 如果您想了解详细信息 请阅读更多内容微软连接 https connect microsoft com
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐

  • 使用变量名 Josson 的表达式计算 JSON 对象

    我们需要在 java 中计算 JSON 对象表达式 我们有以下源 JSON 对象 a 100 b 200 c 300 d calc a c f g 100 h 200 i calc g h 我们需要输出这种格式 a 100 b 200 c
  • VBS 替换消息框而不是放在顶部

    我有这个 VBS 脚本来创建消息框 x msgbox The message 6 Title 但如果我运行另一个带有不同消息的脚本 它会将其放在顶部 使用以下代码从批处理文件调用 vbs echo off temp message vbs
  • C# 泛型类型声明

    是否可以获取通过反射获得的类型的 c 名称 例如 System Collections Generic List 1 System String mscorlib Version 4 0 0 0 Culture neutral Public
  • Objective C - 综合属性[重复]

    这个问题在这里已经有答案了 可能的重复 在 Objective C 中使用下划线作为属性名称前缀 在综合属性时我发现有人在做 synthesize myVar myVar 什么是 myVar 以及与简单执行的区别 synthesize my
  • Facebook javascript 在“分享”上触发

    我在这里看到了这个链接 如何检测Facebook分享成功 使用 JavaScript 但我该如何实现呢 首先 您需要在页面中加载 Javascript SDK div div
  • Java SwingWorker 不会在任务完成时终止

    好的 所以我一直在使用 SwingWorker 并获得了一些用于更新 gui 的简化代码 但我无法弄清楚如何让线程在完成时正确终止 目前 它只能通过 stop 选项终止 我该如何设置它才能在线程完成进程时正确终止线程 目前 经过return
  • SQLiteException:没有这样的列:basal(代码1)

    我正在使用数据库 并且有以下 DataBaseHandling 类 public class DatabaseHandler extends SQLiteOpenHelper All Static variables Database Ve
  • 使用 python 反向模板

    我有一个文件 充满了某种格式的数据 我想用该数据填充我自己的数据结构 例如 我可以有一个这样的文件 John Smith 0123 children Sam Kim 我想用该字符串做一些事情 以便将数据提取到例如 firstName Joh
  • Outlook 根据类别自动更改提醒

    我需要自动化 Outlook 以便当用户在约会上设置特定类别时 它会根据该类别自动设置提醒时间 例如 用户具有 现场会议 类别和 场外会议 类别 他希望现场会议的提醒时间自动更改为 15 分钟 场外会议的提醒时间自动更改为 30 分钟 他明
  • 如何使用 Object 参数对 Arraylist 中的对象进行排序

    我在对 Arraylist 中的对象进行排序时遇到问题 因为我是排序对象的新手 对数组列表进行排序非常基本 但对对象的数组列表进行排序是完全不同的事情 基本上 我一直在堆栈溢出中查看代码 人们似乎使用比较器来解决他们的问题 但他们没有解释如
  • XCode 无法构建 Unity3D 项目:找不到 lib

    我有 Unity3D 项目 我为 iOS 构建了它 如果我使用 XCode 的模拟器运行它 它工作得很好 但是 如果我想为 iOS 设备 或连接到我的 Mac 的物理设备编译它 我会遇到很多错误 因此我无法创建存档 出于测试目的 我什至创建
  • 如何使用php将GPS坐标转换为完整地址? [复制]

    这个问题在这里已经有答案了 我的 GPS 坐标格式为54 1456123 10 413456 如何使用 PHP 将它们转换为包含邮政编码 街道和城市的地址 使用谷歌API lat 54 1456123 long 10 413456 url
  • Python for 循环跳过所有其他值

    我在 django 应用程序中遇到了一个奇怪的问题 其中 for 循环跳过了所有其他项目 我已经获取了返回的查询集并且list ed 进行迭代 这样做的目的是删除另一个列表中的项目 该列表通过 POST 变量传递到视图 该视图是一个ajax
  • 如何在 Windows Phone 中使用 Bing 搜索 API?

    我正在尝试使用 Bing 搜索 API 查找图像作为应用程序内图块的背景 我已将 BingSearchContainer cs 包含在我的项目中 但无法使其与此处提供的示例代码一起使用 有关如何在我的 Windows Phone 8 应用程
  • 有时读取 ImportXML 单元格时,.getValue() 返回 #N/A

    我编写了一个脚本 将 ImportXML 公式写入单元格 然后几秒钟后尝试读取单元格并将其替换为它的返回值 问题是当我用获取的值替换单元格时 我经常 但并非总是 得到 N A 问题是 我能够在短时间内看到正确的值 因此 ImportXML
  • Docker 中 Bcrypt 安装失败

    我使用 MongoDB 创建了一个在 Docker 中运行的节点应用程序 它工作得很好 直到我包括在内节点 bcrypt js 这使得 Node 崩溃node gyp and bcrypt 该应用程序在本地和 Heroku 上运行良好 我尝
  • CardLayout,通过ButtonClick在JPanel之间切换

    我想通过单击 JPanel 上的按钮在 JPanel 之间切换 例如 我有一个带有 JButton simknop 的 JPanel sim 和一个带有 JButton helpknop 的 JPanel 帮助 我想通过单击按钮在这 2 个
  • PaintEvent 中警告 QPainter [重复]

    这个问题在这里已经有答案了 我尝试在 QChartView 中绘制更多信息 因此我重新实现了paintEvent virtual void paintEvent QPaintEvent event QChartView paintEvent
  • 当 Coq 中使用自己的可判定性时,评估计算不完整

    The Eval compute命令并不总是计算为简单表达式 考虑代码 Require Import Coq Lists List Require Import Coq Arith Peano dec Import ListNotation
  • 为什么用逗号进行双重初始化是非法的?

    我有三个代码片段 这个 1 7 yes that s all the code 编译没问题 这个 double d 1 7 也编译没问题 然而这个 double d 1 7 编译失败 gcc 4 3 4 说 错误 在数字常量之前预期有不合格