现在 在一个函数中向 GetTiming 数组中写入不定数量个元素
时间: 2024-02-23 16:59:41 浏览: 64
如果你想在一个函数中向 `GetTiming` 数组中写入不定数量的元素,可以使用可变参数 `va_list` 和相关的宏定义来实现。具体来说,你可以定义一个名为 `setTimings` 的函数,它接受一个整型参数 `count` 表示要设置的时间结构体数量,以及不定数量的 `Timing` 类型参数,如下所示:
```
#include <stdarg.h>
void setTimings(int count, ...) {
va_list args;
va_start(args, count);
for (int i = 0; i < count; i++) {
Timing t = va_arg(args, Timing);
GetTiming[i] = t;
}
va_end(args);
}
```
上面的代码中,首先使用 `va_list` 定义了一个可变参数列表 `args`。然后调用 `va_start` 宏来初始化可变参数列表,将 `count` 参数和可变参数列表作为参数传入。接下来使用循环遍历可变参数列表,每次调用 `va_arg` 宏来获取一个 `Timing` 类型的参数,并将其赋值给 `GetTiming` 数组的对应元素。最后调用 `va_end` 宏来结束可变参数列表的访问。
使用上面的函数,你可以向 `GetTiming` 数组中写入任意数量的时间结构体,例如:
```
Timing t1 = {1, 2, 30, 0};
Timing t2 = {0, 3, 15, 20};
Timing t3 = {2, 1, 0, 0};
setTimings(3, t1, t2, t3);
```
上面的代码向 `GetTiming` 数组中写入了三个时间结构体,分别是 t1、t2 和 t3。其中 t1 表示 1 天 2 小时 30 分钟 0 秒,t2 表示 3 小时 15 分钟 20 秒,t3 表示 2 天 1 小时 0 分钟 0 秒。
阅读全文