kernel.h中min宏中的“(void)(&_min1 == &_min2)”的作用是什么?

2023-12-11

In kernel.h分钟定义为:

#define min(x, y) ({                \
    typeof(x) _min1 = (x);          \
    typeof(y) _min2 = (y);          \
    (void) (&_min1 == &_min2);      \
    _min1 < _min2 ? _min1 : _min2; })

我不明白那条线是什么(void) (&_min1 == &_min2);做。是某种类型检查还是什么?


该声明

(void) (&_min1 == &_min2);

是有保证的“无操作”。所以它存在的唯一原因是它的副作用。

但该声明没有任何副作用!

然而:它强制编译器在以下类型时发出诊断:x and y不兼容.
请注意,测试用_min1 == _min2会隐式地将其中一个值转换为另一种类型。

所以,这就是它的作用。它在编译时验证类型x and y兼容.

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

kernel.h中min宏中的“(void)(&_min1 == &_min2)”的作用是什么? 的相关文章

  • 如何在 Visual Studio 2010 中增强 XAML 设计器?

    当我使用 XAML 设计器时 进入设计器和退出设计器是如此困难和缓慢 当我这样做时 Visual Studio 卡了一段时间 有什么方法可以增强 XAML 设计器和编辑器吗 Ant 保存 XAML 文件时非常慢 这通常意味着您可能有复杂的
  • 在 C# 中创建具有单独列的分隔文本

    我一直在尝试在 C 中创建一个制表符限制的文本文件 以便数据正确显示在单独的列中 Firstname Lastname Age John Smith 17 James Sawyer 31 我尝试过 t 字符 但我得到的只是 Firstnam
  • 如何使用MemoryCache代替Timer来触发一个方法?

    以下方法通过等待已运行操作的结果来处理并发请求 对数据的请求可能会使用相同 不同的凭据同时出现 对于每组唯一的凭据 最多可以有一个GetCurrentInternal呼叫正在进行中 当准备就绪时 该呼叫的结果将返回给所有排队的服务员 pri
  • C++ 中本地类中的静态成员变量?

    我知道我们不能宣布static本地类中的成员变量 但其原因尚不清楚 那么请问有人可以解释一下吗 另外 为什么我们不能访问非static函数内部定义的变量 内部已经定义了局部类 直接在局部类成员函数中 在下面给出的代码中 int main i
  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • 如何在 C# 中从 UNIX 纪元时间转换并考虑夏令时?

    我有一个从 unix 纪元时间转换为 NET DateTime 值的函数 public static DateTime FromUnixEpochTime double unixTime DateTime d new DateTime 19
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 如何从 .resx 文件条目获取注释

    资源文件中的字符串有名称 值和注释 The ResXResourceReader类让我可以访问名称和值 有办法看评论吗 你应该能够得到Comment via ResXDataNode class http msdn microsoft co
  • C++中的类查找结构体数组

    我正在尝试创建一个结构数组 它将输入字符串链接到类 如下所示 struct string command CommandPath cPath cPathLookup set an alarm AlarmCommandPath send an
  • 将 System.Windows.Input.KeyEventArgs 键转换为 char

    我需要将事件参数作为char 但是当我尝试转换 Key 枚举时 我得到的字母和符号与传入的字母和符号完全不同 如何正确地将密钥转换为字符 这是我尝试过的 ObserveKeyStroke this new ObervableKeyStrok
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • 将 log4net 与 Autofac 结合使用

    我正在尝试将 log4net 与 Autofac 一起使用 我粘贴了这段代码http autofac readthedocs org en latest examples log4net html http autofac readthed
  • 等待线程完成

    private void button1 Click object sender EventArgs e for int i 0 i lt 15 i Thread nova new Thread Method nova Start list
  • HttpWebRequest 在第二次调用时超时

    为什么以下代码在第二次 及后续 运行时超时 代码挂在 using Stream objStream request GetResponse GetResponseStream 然后引发 WebException 表示请求已超时 我已经尝试过
  • gcc 的配置选项如何确定默认枚举大小(短或非短)?

    我尝试了一些 gcc 编译器来查看默认枚举大小是否很短 至少一个字节 强制使用 fshort enums 或无短 至少 4 个字节 强制使用 fno short enums user host echo Static assert 4 si
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • 使用 GhostScript.NET 打印 PDF DPI 打印问题

    我在用GhostScript NET http ghostscriptnet codeplex com打印 PDF 当我以 96DPI 打印时 PDF 打印效果很好 但有点模糊 如果我尝试以 600DPI 打印文档 打印的页面会被极大地放大
  • 防止在工厂方法之外实例化对象

    假设我有一个带有工厂方法的类 class A public static A newA Some code logging return new A 是否可以使用 a 来阻止此类对象的实例化new 那么工厂方法是创建对象实例的唯一方法吗 当

随机推荐

  • 加速Python中的位串/位运算?

    我使用编写了一个素数生成器埃拉托斯特尼筛法和Python 3 1 代码在 0 32 秒内正确且优雅地运行ideone com生成最多 1 000 000 个质数 from bitstring import BitString def pri
  • 如何使用 JavaScript 以编程方式设置选择框元素的值?

    我有以下 HTML
  • 如何在Android中的collapsingtoolbarlayout中添加带有标题的ImageView

    I am using CoordinatorLayout to get this effect Here is the layout code
  • MVC 5 仅提示一次 Windows 身份验证

    在 MVC 5 应用程序上 我在 Web config 中有以下内容
  • 构建错误 + 创建 Excel 2010 的 VSTO 插件

    我尝试使用 VS 2010 创建一个 Excel 加载项 当我创建一个新项目 Excel 2010 Addin 时 并尝试编译解决方案 我收到一条错误消息 Error 1 The FindRibbons task could not be
  • 将数组元素从一个数组位置移动到另一个数组位置

    我很难弄清楚如何移动数组的元素 例如 给定以下情况 var array a b c d e 如何编写一个函数来移动元素 d 到左侧 b Or a 在 的右边 c 移动元素后 应更新其余元素的索引 结果数组将是 array a d b c e
  • 阻止访问 ASP.NET - MVC 应用程序的静态内容

    我们有 asp net MVC 和角度应用程序 我们使用 Identityserver3 来控制应用程序的访问 除了一件事之外 一切都按预期进行 未经授权的用户仍然可以访问应用程序的静态内容 有没有办法在用户登录之前拒绝访问这些文件 这是一
  • 从客户端(iOS 和 Android)发送 Socket 请求到 Sails.js 服务器

    我正在尝试将 socket io 与 iOS 和 Android 应用程序一起使用 但这里存在一些问题 我想问一下是否有人真正有解决方案 如何从客户端 iOS Android 发送socket io请求 我认为有适用于iOS和Android
  • web2py 网址验证器

    在 web2by 构建的缩短器中 我想首先验证 url 如果无效 则返回到第一页并显示错误消息 这是我在控制器 mvc arch 中的代码 但我不明白出了什么问题 import urllib def index return dict de
  • Woocommerce 变体产品价格显示默认值

    我的商店设置了产品变体 目前在产品缩略图页面 即类别和过滤页面 上显示 从 xx 到 xx 当进入单个产品页面时 变体被选择为变体价格显示 我将某些属性设置为默认值 这是我希望在类别页面上显示的价格 标准尺寸和成本 但我不知道是否可能或将其
  • Python 错误:“ValueError:需要超过 1 个值才能解压”

    在 Python 中 当我运行这段代码时 from sys import argv script user name argv prompt gt print Hi s I m the s script user name script 我
  • 将单选按钮值插入 mysql

    我创建了一个测试表单只是为了尝试将我的单选按钮值发送到 mysql 我现在遇到了问题 下面的代码只是一个测试 我希望单选按钮提交该值 但事实并非如此 table width 300 border 0 align center cellpad
  • Flutter/Dart 中的 SOAP 请求

    我需要使用 Flutter 向 NET Webservice WSDL 发出 SOAP 请求 该网络服务有一个基本的身份验证 用户 密码 和一些带有预定义信封的服务 所以我尝试创建一个 SOAP 信封 String requestBody
  • 多次购买时会发生什么 - 非续订订阅应用内购买

    我正在实现一个包含应用内购买功能的示例 订阅是非续订类型 自动续费订阅时 如果用户已经购买过 且在有效期内再次尝试购买 iTunes会提示 您已经订阅了购买 并且不会进一步进行 用户可以使用应用程序恢复功能恢复其订阅 但对于非续订订阅类型
  • 是否可以在 FullCalendar 中交替行背景颜色?

    我对 fc agenda slot tr 应用了奇数 偶数类 但问题是左 右 单元格 边框位于下面的 fc agenda days 表上 因此当我设置背景时它不会显示在 fc agenda slot tr 上 FullCalendar 本身
  • CakePHP 使用 saveAll:如何使用 HABTM 链接记录保存额外数据?

    我已经能够使用 CakePHP 的 saveAll 方法同时创建 成员 并将它们注册到 事件 中 创建 HABTM 链接记录 这非常棒 例如 此代码创建两个新的 Members 并将每个人的记录添加到 EventsMember 表中 将它们
  • Android 数字选择器对话框 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 有没有人有任何对话框允许用户选择一定范围内的数字 这似乎是一个相当普遍的需求 但我找不到它的通用对话框 而且我不想花时间创建自己的对话框 有什么帮助吗 我知道两年多过去了 但答案仍然
  • ruby 如何允许方法和类同名?

    我碰巧正在用 ruby 开发 Singleton 类 只记得它的工作方式工厂女工 他们解决了这个问题 所以你可以同时使用漫长的路 Factory create and 捷径 Factory 我想了想 很好奇他们是如何上课的Factory也表
  • Cygwin编码困难

    不确定这是否是一个编程问题 我开始怀疑是这样 但后来我在 Windows 控制台而不是 Cygwin 控制台中运行了有问题的 Java 程序 可执行 jar 并且它运行良好 输出重音良好 重音输入接受良好 因此以下内容仅适用于 Cygwin
  • kernel.h中min宏中的“(void)(&_min1 == &_min2)”的作用是什么?

    In kernel h分钟定义为 define min x y typeof x min1 x typeof y min2 y void min1 min2 min1 lt min2 min1 min2 我不明白那条线是什么 void mi