内联函数中 __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__ 的行为 的相关文章

随机推荐

  • 索引图像上的图形

    我收到错误 无法从具有索引的图像创建 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 在内联