可变参数函数 - 如何确保参数正确传递

2024-03-09

有没有什么方法(内置或代码模式)来确保向可变参数函数传递正确数量的参数? (显然,这将作为 API 的一部分包含在内,我可以检查我自己的内部代码。)

我正在考虑要求 UN32 Magic Number 作为最后一个传递的参数,并检查可变参数函数的有效性。有人对此有什么想法吗?


va_*宏只是从本地堆栈中弹出变量,因此您必须信任用户。我认为传递数组/大小元组可能更安全。

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

可变参数函数 - 如何确保参数正确传递 的相关文章

  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • 以编程方式读取 SQL Server 查询计划建议的 SQL 特定执行的索引?

    如果我在 SSMS 中运行此命令 set showplan xml on GO exec some procedure arg1 arg2 arg3 GO set showplan xml off GO 我获得查询执行中涉及的完整调用堆栈的
  • 为什么pow函数比简单运算慢?

    从我的一个朋友那里 我听说 pow 函数比简单地将底数乘以它的指数的等价函数要慢 例如 据他介绍 include
  • 如何判断计算机是否已重新启动?

    我曾经使用过一个命令行 SMTP 邮件程序 作为试用版的限制 它允许您在每个 Windows 会话中最多接收 10 封电子邮件 如果您重新启动计算机 您可能还会收到 10 个以上 我认为这种共享软件破坏非常巧妙 我想在我的应用程序中复制它
  • 当一组凭据下的计划任务启动的进程在另一组凭据下运行另一个程序时,Windows 是否有限制

    所以我有一个简单的例子 其中我有应用程序 A 它对用户 X 本地管理员 有一些硬编码的凭据 然后它使用硬编码的绝对路径启动带有这些凭据的应用程序 B A 和 B 以及 dotnet 控制台应用程序 但是它们不与控制台交互 只是将信息写入文件
  • C# 数据表更新多行

    我如何使用数据表进行多次更新 我找到了这个更新 1 行 http support microsoft com kb 307587 my code public void ExportCSV string SQLSyntax string L
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • C# 存档中的文件列表

    我正在创建一个 FileFinder 类 您可以在其中进行如下搜索 var fileFinder new FileFinder new string C MyFolder1 C MyFolder2 new string
  • 类型约束

    我有以下类层次结构 class Header IEnumerable
  • 识别 Visual Studio 中的重载运算符 (c++)

    有没有办法使用 Visual Studio 快速直观地识别 C 中的重载运算符 在我看来 C 中的一大问题是不知道您正在使用的运算符是否已重载 Visual Studio 或某些第三方工具中是否有某些功能可以自动突出显示重载运算符或对重载运
  • 使用valgrind进行GDB远程调试

    如果我使用远程调试gdb我连接到gdbserver using target remote host 2345 如果我使用 valgrind 和 gdb 调试内存错误 以中断无效内存访问 我会使用 target remote vgdb 启动
  • 为什么从字典中获取时会得到 Action<> 的克隆?

    我有以下字典 private Dictionary
  • 在视口中查找 WPF 控件

    Updated 这可能是一个简单或复杂的问题 但在 wpf 中 我有一个列表框 我用一个填充数据模板从列表中 有没有办法找出特定的数据模板项位于视口中 即我已滚动到其位置并且可以查看 目前我连接到了 listbox ScrollChange
  • 如何在 C 中安全地声明 16 位字符串文字?

    我知道已经有一个标准方法 前缀为L wchar t test literal L Test 问题是wchar t不保证是16位 但是对于我的项目 我需要16位wchar t 我还想避免通过的要求 fshort wchar 那么 C 不是 C
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • 等待 IAsyncResult 函数直至完成

    我需要创建等待 IAsyncResult 方法完成的机制 我怎样才能做到这一点 IAsyncResult result contactGroupServices BeginDeleteContact contactToRemove Uri
  • 使 Guid 属性成为线程安全的

    我的一个类有一个 Guid 类型的属性 该属性可以由多个线程同时读写 我的印象是对 Guid 的读取和写入不是原子的 因此我应该锁定它们 我选择这样做 public Guid TestKey get lock testKeyLock ret
  • 将数组作为参数传递

    如果我们修改作为方法内参数传递的数组的内容 则修改是在参数的副本而不是原始参数上完成的 因此结果不可见 当我们调用具有引用类型参数的方法时 会发生什么过程 这是我想问的代码示例 using System namespace Value Re
  • 为boost python编译的.so找不到模块

    我正在尝试将 C 代码包装到 python 中 只需一个类即可导出两个函数 我编译为map so 当我尝试时import map得到像噪音一样的错误 Traceback most recent call last File
  • 是否可以在不连接数据库的情况下检索 MetadataWorkspace?

    我正在编写一个需要遍历实体框架的测试库MetadataWorkspace对于给定的DbContext类型 但是 由于这是一个测试库 我宁愿不连接到数据库 它引入了测试环境中可能无法使用的依赖项 当我尝试获取参考时MetadataWorksp

随机推荐

  • 如何从 android 中的列表视图中获取下一个和上一个列表项

    我有一个列表视图 其中包含一些类似于 Twitter 推文的列表项 当我单击特定列表项时 它会显示该特定列表项的详细信息 在该活动中 包含两个按钮 用于显示 下一个 列表项详细信息和 上一个 列表项详细信息 Problem 如何使用视图翻转
  • Python 数据类:如果 __post_init__ 执行类型转换,则使用什么类型?

    我有一个 Python 类 其中有一个可以传递多种序列类型之一的字段 为了简化 我将坚持使用元组和列表 init 将参数转换为MyList from typing import Union from dataclasses import d
  • iphone <-> 现实世界连接

    有关如何初始化与 iphone 的串行通信的任何指示吗 或者还有其他与外部硬件交互的想法吗 将外部硬件连接到 iPhone 的唯一受支持的方式是通过 iPod 配件协议 通过 30 针连接器 该计划的详细信息位于http developer
  • 我可以制作 pip 可安装包而不在 pypi 中注册包吗?

    我正在尝试按照以下描述使用 python3 制作 pip 可安装包 Url here https marthall github io blog how to package a python app 我使用成功安装了我的包sudo pyt
  • 如何在Python中删除列表中满足特定条件的最左/最右元素? [复制]

    这个问题在这里已经有答案了 我有一个如下所示的列表 a b c 这是解析 脏 csv 文件的结果 我现在想去掉右侧的空列 我不能只使用计数 因为长度是可变的 我也不能只使用简单的过滤 因为还有一些行看起来像这样 a1 c1 所以我必须保留空
  • 为什么 Hibernate 会抛出 org.hibernate.exception.LockAcquisitionException?

    我有这个方法 mymethod long id Person p DAO findPerson id Car car new Car car setPerson p p getCars add car DAO saveOrUpdate ca
  • for循环中的Qt字符串生成器

    下列的this http labs qt nokia com 2011 06 13 string concatenation with qstringbuilder and this http doc snapshot qt project
  • 反斜杠后是否允许有空格来继续一行(在 C/C++ 中)[重复]

    这个问题在这里已经有答案了 使用时 要续行 是否允许有空格after反斜杠 在同一行 换行符应紧接在反斜杠之后 C 标准 N4140 状态 2 2 翻译阶段 反斜杠字符的每个实例 紧随其后的换行符被删除 拼接物理源线以形成逻辑源线 任何物理
  • 将 django 应用程序移动到子文件夹和 url.py 错误

    我有一个关于将 django 应用程序放入 apps 子目录的问题 我在项目根目录中有一个名为 faktura 的应用程序 我不喜欢它放在那里 我想将所有应用程序存储在 apps 子目录下 所以 我发现我可以将python路径扩展到 app
  • MVC 5 ViewBag 安全性

    我正在编写一个 MVC 互联网应用程序 我有一个关于使用 ViewBag 的问题 在我的许多控制器中 我都有 SelectList 对象 用户可以在其中选择一个对象 所选对象是我的模型的外键值 我的问题是 我应该使用 ViewBag 吗 V
  • 使用 htaccess 将 HTTP GET 请求重写为 Apache 中的 POST

    我需要更改第三方 PHP 应用程序的行为 并在此后不久恢复更改 如果我可以重写 GET 请求并从中生成 POST 请求 我将节省大量时间 并且可以避免在应用程序中进行任何更改 是否可以改造GEThttp website action1 pa
  • 如何用C语言打印

    一个 C 初学者 事实上这是我的第一个测试程序 我实际上不知道如何将该数字打印到终端 include
  • 我可以同时使用 setupWithNavController 和 setOnNavigationItemSelectedListener

    我有一个带有 BottomNavigationView 的活动 其中包含 5 个项目和片段来显示页面 我将 NavController 设置如下 NavigationUI setupWithNavController mBottomNavi
  • PHP 获取前一个数组元素并知道当前数组键

    我有一个带有特定键的数组 array 420 gt array 430 gt array 555 gt array 在我的应用程序中 我知道当前的密钥 例如555 我想获取前一个数组元素 在此示例中 它是带有键的数组元素430 我怎样才能在
  • MQTT:如何知道 puback 是针对哪条消息的?

    我正在尝试设置一个 MQTT 服务器 它将客户端发送的消息保存到本地数据库中 每条消息都有一个 成功接收 标志 当接收客户端为收到的每条消息 QOS 1 返回 puback 时 我想翻转该标志 问题是 当我发布消息时 服务器正确接收从接收客
  • Symfony 2 多个应用程序?

    这似乎是与 Symfony2 相关的最可怕的话题 因为经过一周的搜索和测试 我仍然找不到答案 简而言之 我正在构建一个具有多个子域的应用程序 我希望为所有子域提供不同的配置 同时共享来自 src 的多个捆绑包 更重要的是 导入中央配置和路由
  • Spring Data JPA:删除乐观锁定语义

    有一个实体Foo with a Version柱子 如果我想删除它 我希望 Spring Data JPA 和 或 Hibernate 检查 Version列与数据库中的列匹配 如果不符合 则应拒绝删除 对于独立实体来说 这可以按预期工作
  • 为什么在 Javascript 的 array.forEach 回调中提供数组参数?

    Javascript 的数组迭代函数 forEach every some等 允许您传递三个参数 当前项 当前索引和正在操作的数组 我的问题是 与通过闭包访问数组相比 将数组作为参数进行操作有什么好处 我为什么要使用这个 myArray f
  • Github Desktop - 作者身份未知

    我正在使用 github 桌面上传一些基本网站的代码 然后使用 github 页面 但是 每次我尝试提交到 main 时 都会出现错误 提示 作者身份未知 我知道我必须将我的姓名和电子邮件放入文件中 但是其中有两个带有 JavaScript
  • 可变参数函数 - 如何确保参数正确传递

    有没有什么方法 内置或代码模式 来确保向可变参数函数传递正确数量的参数 显然 这将作为 API 的一部分包含在内 我可以检查我自己的内部代码 我正在考虑要求 UN32 Magic Number 作为最后一个传递的参数 并检查可变参数函数的有