我是在一个单片几环境中
时间: 2024-02-23 16:59:44 浏览: 59
如果你是在单片机环境中,可能没有标准库提供的 `stdarg.h` 头文件和相关的可变参数宏定义。在这种情况下,你可以手动实现可变参数的功能,例如使用指针数组来传递参数。下面是一个示例代码,它实现了一个名为 `setTimings` 的函数,它接受一个整型参数 `count` 表示要设置的时间结构体数量,以及一个指向 `Timing` 类型指针数组的指针 `timings`,其中这个指针数组包含了所有的时间结构体参数。函数实现如下:
```
void setTimings(int count, Timing **timings) {
for (int i = 0; i < count; i++) {
GetTiming[i] = *timings[i];
}
}
```
上面的代码中,函数接受一个整型参数 `count` 表示要设置的时间结构体数量,以及一个指向 `Timing` 类型指针数组的指针 `timings`,其中这个指针数组包含了所有的时间结构体参数。函数使用循环遍历指针数组,每次取出一个 `Timing` 类型的指针,将其指向的结构体赋值给 `GetTiming` 数组的对应元素。
使用上面的函数,你可以向 `GetTiming` 数组中写入任意数量的时间结构体,例如:
```
Timing t1 = {1, 2, 30, 0};
Timing t2 = {0, 3, 15, 20};
Timing t3 = {2, 1, 0, 0};
Timing *timings[] = {&t1, &t2, &t3};
setTimings(3, timings);
```
上面的代码向 `GetTiming` 数组中写入了三个时间结构体,分别是 t1、t2 和 t3。其中 t1 表示 1 天 2 小时 30 分钟 0 秒,t2 表示 3 小时 15 分钟 20 秒,t3 表示 2 天 1 小时 0 分钟 0 秒。注意,我们使用了一个指向 `Timing` 类型指针数组的指针 `timings`,其中指针数组包含了所有的时间结构体参数。
阅读全文