我这有个结构体:

VENC_CHN_ATTR_S venc_chn_attr;
/* the attribute of the venc chnl*/
typedef struct rkVENC_CHN_ATTR_S {  //视频编码通道属性结构体VENC_ATTR_S stVencAttr;    // the attribute of video encoderVENC_RC_ATTR_S stRcAttr;   // the attribute of rate  ctrlVENC_GOP_ATTR_S stGopAttr; // the attribute of gop
} VENC_CHN_ATTR_S;
/* the attribute of the Venc*/
typedef struct rkVENC_ATTR_S {  //编码参数结构体CODEC_TYPE_E enType;    // RW; the type of encodecIMAGE_TYPE_E imageType; // the type of input imageRK_U32 u32VirWidth;  // stride width, same to buffer_width, must greater than// width, often set vir_width=(width+15)&(~15)  //幅长RK_U32 u32VirHeight; // stride height, same to buffer_height, must greater// than height, often set vir_height=(height+15)&(~15)RK_U32 u32Profile;   // RW;// H.264:   66: baseline; 77:MP; 100:HP;   //画质// H.265:   default:Main;// Jpege/MJpege:   default:BaselineRK_BOOL bByFrame;    // RW; Range:[0,1];// get stream mode is slice mode or frame modeRK_U32 u32PicWidth;  // RW; width of a picture to be encoded, in pixelRK_U32 u32PicHeight; // RW; height of a picture to be encoded, in pixelVENC_ROTATION_E enRotation;union {VENC_ATTR_H264_S stAttrH264e;   // attributes of H264eVENC_ATTR_H265_S stAttrH265e;   // attributes of H265eVENC_ATTR_MJPEG_S stAttrMjpege; // attributes of MjpegVENC_ATTR_JPEG_S stAttrJpege;   // attributes of jpeg};
} VENC_ATTR_S;

我在c++中用 = {0}初始化编译就报错:

VENC_CHN_ATTR_S venc_chn_attr = {0};

报错:

error: invalid conversion from ‘int’ to ‘CODEC_TYPE_E’ {aka ‘rk_CODEC_TYPE_E’} [-fpermissive]VENC_CHN_ATTR_S venc_chn_attr = {0};

用memset函数就能正常编译通过:

memset(&venc_chn_attr, 0, sizeof(VENC_CHN_ATTR_S));

而在c中用 = {0}是可以正常编译过的,到了c++里就不行了。。

原因,c++中结构体不能用 = {0}来初始化,要用 = {}来初始化

参考文章:c++中结构体中套结构体不能用 = {0}来初始化吗? - 知乎

c++中结构体套结构体用 = {0}初始化编译报错解决办法(用memset或者={})(error: invalid conversion)相关推荐

  1. oracle拼接字符串报错,Oracle 中wmsys.wm_concat拼接字符串,结果过长报错解决

    备忘:这个函数最大是4000,根据拼接列的长度,通过限制拼接条数来防止拼接字符串过长错误 --这个情况是从子表中读取出具,这里直接把它当做查询字段处理,在子表中有所有数据 select info.id ...

  2. idea安装及项目导入过程中pom报错解决办法

    1.idea安装可用破解版或者在淘宝上买正版账号(20多块钱一年,挺便宜的) 2.pom报错解决办法: 在项目导入过程中pom报错: 原因:相关jar包未下载完.(下载速度慢,因为下载的链接是国外的节 ...

  3. 由于列表中存在相同实例导致insert_many报错解决办法

    在使用insert_many对mongodb进行多文档插入时报错 pymongo.errors.BulkWriteError: batch op errors occurred 但奇怪的是这样没问题 ...

  4. android7.0 Jack编译器报错解决

    报错:Communication error with Jack server (58), try 'jack-diagnose' or see Jack server log 0.查看jack-se ...

  5. C++ 中利用 _findfirst遍历所有文件夹及文件,以及findnext win10报错解决办法

    C++中读取文件可以采用几个函数分别为,_findfirst._findnext._findclose.其中还要借助结构体 struct _finddata_t,_finddata_t主要用来存储各种 ...

  6. 在创建maven项目中出现src/main/java 和src/maim/java 报错解决方法

    eclispe在创建maven项目时出现src/main/java 和src/maim/java没有在项目中出现,在通过java Build Path>>source 发现这两个文件有报错 ...

  7. NX12.0安装报错解决办法

    NX12.0安装过程中遇到的问题及解决办法 当前页面的脚本发生错误 ugslmd无法替换 当前页面的脚本发生错误 解决办法:去自己的下载文件路径检查,一定不要存有空格,有些安装包下载之后表面上看没有空 ...

  8. ERROR: libgomp.so.1: version `GOMP_4.0‘ not found报错解决

    报错信息: /home/xxxxx/anaconda3/envs/py362/lib/python3.6/ site-packages/torch/lib/../../../../libgomp.so ...

  9. 【工具】更新arduino最新esp8266库离线安装包3.0.1、ESP32库离线安装包1.0.6,库编译报错解决方法...

    公众号关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 210806更新ESP32和ESP8266最新离线安装包下载地址.     因为各种 ...

最新文章

  1. 计算机输入输出有哪几种控制方式,计算机输入/输出的方式有哪几种?
  2. MCMC笔记:吉布斯采样(Gibbs)
  3. 为提高绩效,HR需要做的改进工作
  4. 【pmcaff】玩智能硬件的小伙伴,这些你用过么!
  5. flink实时同步mysql_基于Canal与Flink实现数据实时增量同步(一)
  6. 正则化、交叉验证、泛化能力
  7. 一句命令行检查cpu个数
  8. 心中一万只草泥马在奔腾是种怎样的体验?| 今日最佳
  9. 02-线性结构2 一元多项式的乘法与加法运算 (20 分)
  10. c语言冒泡排序获取最小值,C语言 冒泡排序算法详解及实例
  11. centos7、Linux实现文件夹共享、Linux共享文件夹后无权限访问
  12. 三维点云数据处理软件供技术原理说明_三维点云模型
  13. 获取UI控件位置信息
  14. 一阶电路暂态响应的结果分析。_《电路原理》——相量法
  15. Docker 使用OpenJDK 验证码无法显示
  16. verlay虚拟化技术_Overlay介绍
  17. IKAnalyzer中文分词分析内容目录
  18. 【信息系统集成】-成本管理错题
  19. 常见文件mime类型
  20. JAVA算法:走迷宫回溯算法设计(JAVA版本)

热门文章

  1. IOS的消息传递机制,使用NSNotificationCenter进行通信,很实用
  2. nginx配置文件防盗链
  3. unity加载sprite_Unity 分离贴图 alpha 通道实践
  4. s120面板控制调速_SINAMICS S120变频调速装置
  5. LSMW批处理使用方法(01)_总述及界面说明
  6. Oracle数据库查看用户状态
  7. OpenUI5 - SAP开源中的移动大战略
  8. SAP 批次管理(Batch management)
  9. ABAP常用Function
  10. 元气森林难撕“网红”标签