博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
restrictkeyword
阅读量:4664 次
发布时间:2019-06-09

本文共 588 字,大约阅读时间需要 1 分钟。

今天在移植ffmpeg到opencore时出现一个编译错误:

/libavcodec/dsputil.c:545: error: expected ';', ',' or ')' before 'block'

等等一大堆

到文件dsputil.c中发现是这个keywordrestrict引起的,说实话还是第一次见个keyword,赶紧上网查查:

keywordrestrict仅对指针实用,修饰指针,表明要改动这个指针所指向的数据区的内容,仅能通过该指针来实现,此keyword的作用是使编译器优化代码,生成更高效的汇编代码,“由restrict修饰的指针是最初唯一对指针所指向的对象进行存取的办法,仅当第二个指针基于第一个时,才干对对象进行存取.”

事实上restrict同const或valiate一样是一个修饰符而已,告诉编译器被 restrict修饰的指针所指向的对象,仅仅能通过这个指针或基于这个指针的其它指针进行操作,即限制訪问用restrict限制的指针指向的对象仅仅能通过这个指针訪问,这对编译器的优化非常有优点。

但要注意:restrict是C99中新增的keyword,在C89和C++中都不支持,在gcc中能够通过-std=c99来得到对它的支持。

转载于:https://www.cnblogs.com/blfshiye/p/4389617.html

你可能感兴趣的文章
MyBatis 3模糊查询(like)写法(转)
查看>>
递归(字符串)遇到一个不懂的问题
查看>>
HDFS内容追加
查看>>
java基础--集合框架2(强软弱虚)
查看>>
pomelo服务器环境搭建
查看>>
JZOJ 4.22 2131——【2017.4.21普及】数字游戏
查看>>
所有iOS设备的屏幕分辨率
查看>>
科学家:不需卵子也可能造婴儿
查看>>
SVN脱离锁定的几种方法
查看>>
windows management instrumentation服务未启动-解决脚本
查看>>
CSS基础(六):浮动深入
查看>>
C++设计模式-Singleton
查看>>
SQL Server 检测到基于一致性的逻辑 I/O 错误
查看>>
2013 长沙网络赛J题
查看>>
map 后 PE 蓝屏原因专题讨论(e820cycles参数)
查看>>
[Teamcenter 2007 开发实战] 调用web service
查看>>
HDU1061_Rightmost Digit【高速幂取余】
查看>>
详细设计文档模板
查看>>
POS配置
查看>>
js获取前后n天的时间
查看>>