restrict 关键字复杂用法

IT_YUAN 2013-11-01 05:23:14
const unsigned char*restrict const*restrict const inpkts
这句话里边包含了这么多的restrict指针,有大神能详细说明每个的详细用法吗?
...全文
259 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
max_min_ 2013-11-02
  • 打赏
  • 举报
回复
引用 5 楼 IT_YUAN 的回复:
这句代码是从开源软件zfec里边提取出来的,感觉好复杂
没必要,太繁琐了!知道 restrict的基本用法就好了!不过现在也没什么,几乎没见了都!
IT_YUAN 2013-11-01
  • 打赏
  • 举报
回复
这句代码是从开源软件zfec里边提取出来的,感觉好复杂
taodm 2013-11-01
  • 打赏
  • 举报
回复
直接无视restrict就可以了,不用折腾。
「已注销」 2013-11-01
  • 打赏
  • 举报
回复
关键字restrict仅对指针有用,修饰指针,表明要修改这个指针所指向的数据区的内容,仅能通过该指针来实现,此关键字的作用是使编译器优化代码,生成更高效的汇编代码,“由restrict修饰的指针是最初唯一对指针所指向的对象进行存取的办法,仅当第二个指针基于第一个时,才能对对象进行存取.” 其实restrict同const或valiate一样是一个修饰符而已,告诉编译器被 restrict修饰的指针所指向的对象,只能通过这个指针或基于这个指针的其他指针进行操作,即限制访问用restrict限制的指针指向的对象只能通过这个指针访问,这对编译器的优化很有好处。 但要注意:restrict是C99中新增的关键字,在C89和C++中都不支持,在gcc中可以通过-std=c99来得到对它的支持。[引自博文]
Adol1111 2013-11-01
  • 打赏
  • 举报
回复
restrict就那个用处吧,搞再多也是一样的。不过这修饰太夸张了点吧... 这里应该是个二维数组,所有的指向都是const,不可更改(包括指针指向),然后所有指向的部分,都有restrict修饰,不让其他指针进行访问。应该是这个意思,你可以试试.
漫步者、 2013-11-01
  • 打赏
  • 举报
回复
没有见过搞这么多修饰的!与其这样,那还不如直接定义为常量!

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧