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

雨林霖 2020-08-13 17:36:37 1465

一般快速初始化数组会用到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

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 1 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
雨林霖
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区