内联函数中 __LINE__ 的行为

2024-01-04

我有一个将行号和文件名传递给错误处理程序的宏:

#define SYSTEM_FAILURE (error_code, comment) \
   System_Failure((error_code), (comment), __LINE__, __FILE__);

如何将__LINE__在内联函数中使用时可以解决吗?

file.h:
inline int divide(int x, int y)
{
    if (y == 0)
    {
        SYSTEM_FAILURE(ENUM_DIVIDE_BY_ZERO, "divide by zero error");
    }
    return x/y;
}

Will __LINE__包含头文件中的行号,或者调用内联函数的源文件的行号(假设编译器在源代码中“粘贴”)?


在 C 和 C++ 中,宏(在大多数情况下)不会在对实际代码有任何了解的情况下进行评估,并且会在代码之前进行处理(因此称为“预处理器”)。所以,__FILE__将评估为“file.h”,并且__LINE__将计算出与所在行相对应的行号SYSTEM_FAILURE出现在文件.h中。

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

内联函数中 __LINE__ 的行为 的相关文章

  • 编译时运算符

    有人可以列出 C 中可用的所有编译时运算符吗 C 中有两个运算符 无论操作数如何 它们的结果始终可以在编译时确定 它们是sizeof 1 and 2 当然 其他运算符的许多特殊用途可以在编译时解决 例如标准中列出的那些整数常量表达式 1 与
  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C# 中通过 Process.Kill() 终止的进程的退出代码

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

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur

随机推荐

  • 索引图像上的图形

    我收到错误 无法从具有索引的图像创建 Graphics 对象 像素格式 在功能上 public static void AdjustImage ImageAttributes imageAttributes Image image Rect
  • Android - 通过蓝牙传递对象

    Android 的蓝牙聊天示例对于学习如何在手机之间传递字符串非常有用 是否可以使用相同的代码在手机之间传递对象 我在两部手机中定义了相同的类 我只想将一个类的实例从一部手机传递到另一部手机 有可用的示例代码吗 我尝试使用序列化并用 obj
  • Android 中如何更改按下时颜色按钮的颜色?

    我有一些按钮 我将其背景颜色分别设置为红色 绿色和蓝色 当我按下按钮时 会生成单击事件 但 gui 中没有任何变化让用户知道按钮被按下 Android 按钮的默认背景灰色变为橙色 释放按下状态后又恢复为灰色 如何在彩色按钮上实现此功能 这是
  • 使用 Rails 进行应用程序测试

    这更多的是一个一般性问题和某种最佳实践讨论 如何测试 Rails 应用程序 有 BDD 和 TDD 之类的口头禅以及 RSpec 和 Cucumber 之类的框架 但多少才足够 最好的方法是什么 使用 Cucumber 作为集成测试就足够了
  • 我可以将 Microsoft.Maui.Storage.Preferences 抽象为 MAUI 中的 IPreferences

    我正在编写一个 NET MAUI 应用程序 我想使用在我的 ViewModel 中 但是不希望将我的 ViewModel 绑定到静态Preferences类 否则很难测试 所以我注意到有一个IPreferences接口 但我不知道它的目的是
  • 使用 dotCover 时测试结果不一致

    我有一些带有单元测试的代码 这些代码在调试版本中通过 但在发布版本中失败 这是正确的 但是 当使用 JetBrains dotCover 运行时 相同的测试可以在调试和发布模式下通过 为了提供一些背景知识 这里是有问题的测试代码 只是为了让
  • iPhone应用程序允许背景音乐继续播放

    当我启动 iPhone 游戏时 一旦有声音播放 背景音乐或正在播放的播客就会停止 我注意到其他游戏允许背景音频继续播放 这怎么可能 我需要重写应用程序委托中的方法吗 将此行放入您的application didFinishLaunching
  • 为什么我不能从模板函数调用模板类的模板方法[重复]

    这个问题在这里已经有答案了 可能的重复 令人困惑的模板错误 https stackoverflow com questions 3786360 confusing template error 我有一个带有模板方法的模板类 现在我有另一个函
  • RabbitMQ 连接被拒绝 127.0.0.1:5672

    我正在准备一个简单的 ASP NET Core MVC Web 应用程序 我已经在我的笔记本电脑上安装了 RabbitMQ 服务器 RabbitMQ 管理 UI 正在运行localhost 15672 Rabbitmq 集群名称如下 ema
  • Rails 3 渲染视图没有动作

    我定义了特定操作的路线并创建了一个链接 我也创建了相应的视图 但没有代码定义控制器操作方法 单击链接后仍然会呈现视图 也就是说 视图是在实际不存在动作的情况下呈现的 有什么解释吗 是的 即使不存在相应的操作 视图也会被渲染 它会像为其定义的
  • .gitignore 不会忽略“git status”上带有空格的文件名

    当我做一个git status I get modified COM config Config Edit Project Settings lnk 但在我的 gitignore 中我有 lnk 这里发生了什么 会不会是空格的问题 问题不在
  • Cordova 的 FileTransfer 写入错误(代码 1)

    我正在使用 Android 版 Cordova 4 2 0 我有一些麻烦要解决文件传输插件 https github com apache cordova plugin file transfer好好工作 我认为有一个书写错误 except
  • 遗传算法中的轮盘赌选择。需要先对人口进行排序吗?

    在遗传算法中 当使用轮盘赌选择方法选择交叉成员时 是否需要首先按适应度等级对群体进行排序 可能性似乎是 首先按适应度升序对人口进行排序 按适应度降序对人口进行排序 不要对人口进行排序 让轮盘赌球落到它可能落下的地方 我认为无论哪种方式排序都
  • Xamarin.Android Intellisense 无法在 Visual Studio 2010 中工作

    我正在 Visual Studio 2010 中测试 Xamarin Android 并注意到在处理 Android 布局 axml 文件时没有 Android Intellisense 但是 当我处理 cs 文件时 我确实获得了 Andr
  • 在 Ionic 3 中定义模型的正确方法

    在 Ionic 3 中使用 getter 和 setter 定义模型的正确方法是什么 我跟着这个 export class ItemModel private name string constructor private n string
  • 封装 Ruby 函数

    我希望能够完全透明地包装任何 Ruby 过程 包括我自己没有编写源代码的过程 并记录其执行时间 my proc 也就是说 我想创建一个调用的过程my proc保存 上下文 接收者 论点 块 并打印出调用时的执行时间 例如 my proc p
  • 为什么 C# 中基类规范的含义不能递归地依赖于自身?

    以下 C 代码无法编译 public class A public interface B public class C A C B Error given here The type name B does not exist in th
  • WebResource.axd 和 ScriptResource.axd 加载时间超过 1 分钟

    我有个问题 有时 WebResource 和 ScriptResource 需要很长时间才能加载 超过 1 分钟 我们在一个集群中有多个节点 请注意 如果您在出现此问题之前打开了浏览器会话 则 axd 文件加载速度相当快 但新会话加载这些文
  • Spring数据休息@ManyToOne字段不以json形式出现

    我正在使用 Spring Boot Spring Data JPA 和 Spring Data Rest 技术开发一个 Web 项目 我能够成功设置所有内容并能够获取简单 POJO 的 JSON 我自定义了两个类以具有 OneToMany
  • 内联函数中 __LINE__ 的行为

    我有一个将行号和文件名传递给错误处理程序的宏 define SYSTEM FAILURE error code comment System Failure error code comment LINE FILE 如何将 LINE 在内联