最近在看海思SDK中关于imx274_sensor_ctl.c代码中,如何快速初始化数组为同一值

一般快速初始化数组会用到mmset 或者手动一个一个赋值,今天我们来讲讲另一种方法。

这个方法是我在从海思发布的SDK包中学来的,一开始我还不明白为什么他的代码要这样子写:

static int g_fd[ISP_MAX_PIPE_NUM] = { [0 …(ISP_MAX_PIPE_NUM – 1)] = -1 };

看这行代码的时候我是毫无头绪,为此也上网查了很多资料,包括 “…” 的用法, 虽然以前在main函数接受参数的时候看过“…” 大概就是说让main函数接受可变的参数个数。但是“…”出现在这里我就搞不明白了。

因为海思的后面的代码有用到这个数组的元素,而且没有初始化数组,所以我在想这样子的写法是不是一种快速初始化的方法,为此我做了一个例程去验证我的猜想。

#include<stdio.h> #define NUM 10 int main() { int a[NUM]={[0 …(NUM – 1)] = -1}; int i =0; for(;i<10;i++) { printf(“%d”,a[i]); } return 0; }

输出结果为:-1-1-1-1-1-1-1-1-1-1

我觉得这个方法很神奇,除此之外初始化部分数组成员为不同的值也可以用这个方法。

#include<stdio.h> #define NUM 10 int main() { int a[NUM]={[0 …5] = -1,[5 … 9]=2}; int i =0; for(;i<10;i++) { printf(“%d”,a[i]); } }

输出为:-1-1-1-1-122222

转载:https://blog.csdn.net/weixin_44794688/article/details/104746882

免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:最近在看海思SDK中关于imx274_sensor_ctl.c代码中,如何快速初始化数组为同一值 https://www.yhzz.com.cn/a/15099.html

上一篇 2023-05-12 14:32:32
下一篇 2023-05-12 14:34:45

相关推荐

联系云恒

在线留言: 我要留言
客服热线:400-600-0310
工作时间:周一至周六,08:30-17:30,节假日休息。