va_list的重用

2024-01-16

我需要对一个进行两次(或更多)次传递va_list。我有一个一定大小的缓冲区,我想用 sprintf 向其中写入一个格式化字符串。如果格式化的字符串不适合分配的空间,我想将分配的空间加倍并重复直到适合为止。

(作为旁注,我希望能够首先计算格式化字符串的长度并分配足够的空间,但我发现唯一可以做到这一点的函数是 _snprintf,并且它在 VS2005 中已被弃用......)

现在,到目前为止没有问题:我使用vsnprintf并打电话va_start在每次调用之前。

但我还创建了一个函数,它需要va_list作为参数,而不是“...”。然后我就不能使用va_start再次!我读过关于va_copy,但在VS2005中不支持。

那么,你会怎么做呢?


之前的一个问题 https://stackoverflow.com/questions/558223/va-copy-porting-to-visual-c关于缺乏va_copy在 MSVC 中有一些足够好的建议,包括实现你自己的版本va_copy用于 MSVC:

#define va_copy(d,s) ((d) = (s))

您可能想将其放入受保护的“可移植性”标头中#ifndef va_copy and #ifdef _MSC_VER用于VC。

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

va_list的重用 的相关文章

  • 使用 ## 和 __LINE__ 创建 C 宏(与定位宏的标记串联)

    我想创建一个 C 宏来创建一个基于名称的函数 在行号上 我想我可以做类似的事情 真正的函数在大括号内有语句 define UNIQUE static void Unique LINE void 我希望能扩展到类似的内容 static voi
  • 访问特征矩阵的行向量时复制或引用

    我正在使用的代码Eigen http eigen tuxfamily org index php title Main Page矩阵库 我注意到在整个代码中 有如下访问器 RowVector3f V size t vertex index
  • 如何从对Web服务发出的请求中获取客户端IP地址

    我的 IIS 中托管有一个 Web 服务 当客户端直接使用我的服务时 我需要找出客户端 IP 地址 like http MyIpAddress MyApplication MyWebServiceClass asmx http MyIpAd
  • 如何在 Asp.Net Core 6 中向类型化 HttpClient 添加承载令牌身份验证

    我正在尝试使用 ASP Net Core 6 设置一个 Web api 以便用户可以到达我的端点 然后我使用特权帐户在幕后的 D365 中执行一些工作 我正在使用类型化的 HTTP 客户端 但我不确定如何插入承载身份验证 以便来自该客户端的
  • Python 相当于 Bit Twiddling Hacks 中的 C 代码?

    我有一个位计数方法 我正在尝试尽可能快地实现 我想尝试下面的算法位摆弄黑客 http graphics stanford edu seander bithacks html CountBitsSetParallel 但我不知道 C 什么是
  • 为基于架构的 XML 文件创建 WPF 编辑器

    这是场景 我们的服务器产品之一使用大型 XML 配置文件 该文件的布局相当好 并且针对 XSD 文件进行了验证 现在是时候构建一个配置 GUI 来维护这个文件了 我想深入研究 WPF 来完成它 我可以为每个配置部分布置一个单独的表单 每次向
  • 如何使用 libclang 判断成员函数是 const 还是 volatile?

    我有一个实例CXCursor同类CXCursor CXXMethod 我想知道这个函数是否是const or volatile 例如 class Foo public void bar const void baz volatile voi
  • 仅针对某些异常类型中断

    我知道异常处理是一件非常重要的事情 我们在所有项目中都在这样做 主要原因是记录客户发生的错误 这工作正常 根本不是问题 但是 当我仍在使用 Visual Studio 编码和运行应用程序时 我根本不需要任何异常处理 我希望调试器正好停在应用
  • 如何在 C# 中创建 PKCS12 .p12 文件?

    这可能是一个n00b问题 但我在这方面确实没有任何经验 我需要创建一个包含 X509 证书和私钥的 p12 捆绑包 我当前有两个对象 X509Certificate2 和包含关键信息的 RSAParameters 对象 如何将它们合并到 p
  • 如何在控制器中使用多个 DBContext

    如何在控制器中使用多个 DBContext 我尝试以不同的方式重载构造函数 一些控制器 public C1 DBContext1 a DBContext2 b DBContext3 c public C1 DBContext1 a publ
  • Xcode 新手无法用 C++ 打开文件?

    我一直在我参加的课程中使用 Windows 但我正在尝试运行基本代码来弄清楚如何从 Xcode 上的文件打开 关闭 输入 输出 而我通常在 Visual Studio 上使用的代码不是不知道为什么 谢谢 include
  • C# 中不区分大小写的替换不使用正则表达式?

    有没有一种方法可以在不使用 C 中的正则表达式的情况下对字符串进行不区分大小写的替换 像这样的东西 string x Hello x x Replace hello hello world 你可以尝试类似的东西 string str Hel
  • 我如何模拟 UserManager 和 RoleManager 进行单元测试

    我模拟了抽象类来测试类的具体方法 如下所示 var mock new Mock
  • 使用 ClosedXML 附加到 excel 文件

    我需要将新数据附加到使用 ClosedXML 创建的现有 Excel 文件中 如何使用 ClosedXML 附加到 Excel 文件 如何获取最后一条记录的行号并将其附加到该行号上 或者还有其他内容 Thanks 打开现有工作簿 然后使用L
  • 从 cin 读取整数序列并将它们存储在向量中

    这就是我读取整数的方法std cin并将它们存储在向量中 int number vector
  • 没有 FPU 的处理器中的浮点计算

    是否可以在没有浮点单元的嵌入式处理器中执行浮点运算 是的 您只需要在软件中完成即可 你的编译器可能会提供支持 http gcc gnu org onlinedocs gccint Soft float library routines ht
  • 为什么在 C++ 类中的数据成员上使用像 m_ 这样的前缀?

    许多 C 代码使用语法约定来标记数据成员 常见的例子包括 m memberName对于公共成员 在所有使用公共成员的情况下 memberName对于私人会员或所有会员 其他人尝试强制使用this gt member每当使用数据成员时 根据我
  • 智能感知不显示评论

    如果我在 Visual Studio 2010 中输入类似的内容数据集1 我得到所有可用方法和属性的列表 智能感知 这很好用 但是 如果我在此列表中选择一个方法或属性 我不会得到 if 的描述 例如 如果我有类似的东西 public cla
  • OpenCV 仅围绕大轮廓绘制矩形?

    第一次发帖 希望我以正确的方式放置代码 我正在尝试检测和计算视频中的车辆 因此 如果您查看下面的代码 我会在阈值处理和膨胀后找到图像的轮廓 然后我使用 drawContours 和矩形在检测到的轮廓周围绘制一个框 我试图在 drawCont
  • Cordova 上的 ClearCookiesAsync()

    我正在尝试使用 wp8 cordova 中的插件来清除 WebBrowser cookie 我已经让它与 JavaScript 进行通信 并且我的 c 文件中有类似这样的内容 using WPCordovaClassLib Cordova

随机推荐

  • 保留商品上的元数据,并在结帐完成时检索

    我试图在将某个项目添加到购物车时对其设置元数据 在每个页面重新加载时保留它 并在结账成功时检索元数据以传递到单独的 API 下面的代码是成功的 因为它在页面重新加载后回显元数据 因此我认为这是成功的 add action woocommer
  • 无法复制文件,即使在 C# 中授予了 FileIOPermission

    我正在尝试FileIOPermission在 Windows 7 中的 NET 3 5 中 我是 Windows XP 用户 并且因为我是管理员而被授予此权限 我写了下面的代码 测试一下是否可以写入C Program Files Outlo
  • 标签中的最大字符数(表名、列等)

    希望这个问题之前没有被问过 有谁知道域名的字符数限制吗 例如 如果我这样写 CREATE DOMAIN d complement activite etablissement AS character varying 它将创建一个名为的域
  • 更改 MongoDB 中现有用户的密码

    我有一个生产环境 我的 mongoDB 已启动并正在运行 DBA 要求我们更改用于身份验证的密码 执行此操作的一种方法是使用新密码再次运行 addUser 命令 如中所述更改密码 http learnmongo com posts quic
  • 如何将自定义序列化器与 Jackson 一起使用?

    我有两个 Java 类 我想使用 Jackson 将它们序列化为 JSON public class User public final int id public final String name public User int id
  • 使用声明性服务的 OSGi+Pax-Web 中的 GWT 问题

    我正在迁移在 OSGi Equinox 和 Pax web 上运行的现有 GWT 应用程序 以使用声明式服务而不是编程式服务跟踪器 我在 Equinox 中使用 Pax Web PAX WEB War 扩展器可以毫无问题地加载基于 WAR
  • 是否可以使用网络代理(例如 fiddler )将网址重定向到另一个网址

    我正在尝试解析另一个服务器中的 WSDL 文件 但该文件在整个文档中都有硬编码的 localhost 当我获取它时 显然程序抱怨 连接被拒绝 因为我的机器上没有运行任何东西 我的问题是 是否可以使用网络代理 例如 fiddler 将这些 l
  • 转到 JavaScript forEach 循环中的“下一个”迭代[重复]

    这个问题在这里已经有答案了 如何进入 JavaScript 的下一个迭代Array forEach loop 例如 var myArr 1 2 3 4 myArr forEach function elem if elem 3 Go to
  • 调整 Axes3D 标签位置

    我在 matplotlib 中的轴标签与刻度标签重叠时遇到问题 我尝试通过应用转换或调用 set y 来 手动 重新定位标签 但无济于事 这是重现该问题的片段 import matplotlib matplotlib use TKAGG i
  • 如何让C语言成为上下文无关的?

    我知道C不是上下文无关语言 一个著名的例子是 int foo typedef int foo foo x 在这种情况下 词法分析器不知道是否foo第三行是一个标识符 或者typedef 我的问题是 这是唯一的原因吗 C a 上下文相关语言
  • ReportViewer 2010 无法计算表达式

    我的项目是ASP Net WebForms 4 0框架 使用ReportViewer 10 使用Local处理模式渲染本地RDLC报表 我的问题是我的报告中的许多表达式都没有计算 例如 我在报告的页脚中有一个文本框 其中包含简单的表达式 G
  • 如何从列表理解中获取多个列表作为单独的结果?

    假设我有这样的代码 def f x return 2 x x x x range 3 xlist ylist f value for value in x 我怎样才能巧妙地得到这样的结果 xlist 0 2 4 ylist 0 1 4 注意
  • 如何使用 ant 将 jar 文件包含到 Ear 文件的 lib 文件夹中?

    我有以下文件夹结构 project ear lib folder ProjectEJBClient jar META INF folder projectEJB jar My build xml包含以下行来创建 EAR 包
  • 如何使用 Knockout 3.0 取消对可观察数组的更改?

    我的数组发生了变化 我正在使用 Sanderson 最新的数组订阅方法来捕获添加 删除更改 在此订阅中 我打算捆绑并通过网络发送我的请求 如果请求因任何原因失败 我希望能够取消对集合的任何可能的更改 我已经验证该订阅在更改传播之前就已生效
  • Silverlight DependencyProperty.SetCurrentValue 等效项

    我正在寻找相当于 NET 4 的 SL4设置当前值 http msdn microsoft com en us library system windows dependencyobject setcurrentvalue aspxAPI
  • WiX - 在两个不同位置安装相同的文件

    在我的安装程序中 我有两个可选功能 它们是同一软件版本 5 和 6 的插件 他们将相同的文件 相同的名称 相同的二进制内容 安装到应用程序的 plugins 文件夹中 但我有以下错误 C Users FooBar Documents pro
  • 如何将环境变量从 docker-compose 传递到 NodeJS 项目中?

    我有一个 NodeJS 应用程序 我想要调整其大小 该应用程序由两部分组成 服务器部分 运行一个从数据库获取数据的 API 它在端口 3000 上运行 客户端部分 它从服务器部分调用 API 端点 它运行在端口 8080 上 这样 我的客户
  • 有没有办法为嵌套函数生成 pydoc? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一种为嵌套函数生成文档 本例中为 pydoc 的方法 这可以用 pydoc 实现吗 用其他工
  • 使用 RegEx 可靠地解析 HTML 元素 [重复]

    这个问题在这里已经有答案了 可能的重复 使用 PHP 解析 HTML 的最佳方法 https stackoverflow com questions 3577641 best methods to parse html with php 我
  • va_list的重用

    我需要对一个进行两次 或更多 次传递va list 我有一个一定大小的缓冲区 我想用 sprintf 向其中写入一个格式化字符串 如果格式化的字符串不适合分配的空间 我想将分配的空间加倍并重复直到适合为止 作为旁注 我希望能够首先计算格式化