gpt4 book ai didi

c - 解析C语言中变量参数函数调用的Json字符串

转载 作者:行者123 更新时间:2023-11-30 16:49:22 29 4
gpt4 key购买 nike

在其中一个模块中,Json字符串是通过socket接收的。 json 字符串具有名为“args”的数组对象。

数组可以包含任意数量的对象,甚至可以为零。每个对象都有类型和值。类型可以是 %s%d。值可以是字符串或整数,如类型所示。

例如:

args: [ {type: "%d", value: 10}, {type:"%s", value: "abc"}, ...]

接收到json字符串后,需要调用一个可变参数函数。例如:

 cbptr_func("%d%s", 10, "abc");

由于json字符串中每个类型说明符的数量及其顺序不固定,有没有办法将参数传递给C语言中的函数。

干杯格纳纳

最佳答案

不,没有现实的方法可以按照所描述的方式完成此任务。您无法为 C 中的函数创建动态数量的参数。

相反,您应该将格式字符串与 int 值数组和字符串值数组一起传递。对于您的示例,您可以像这样调用该函数:

cbptr_func("%d%s", (int[]){10}, (const char *[]){"abc"});

然后,当您从格式中读取 %d 时,您会从 int 数组中读取一个值,而当您读取 %s 时,您会从字符串数组中读取一个值。

如果您的目标是使用 printf 函数,那么您必须为每个参数重复调用一次,并在调用之间连接结果字符串。

关于c - 解析C语言中变量参数函数调用的Json字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42608054/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com