https://blog.youkuaiyun.com/oktears/article/details/39611435
restrict是c99标准引入的,它只可以用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式.即它告诉编译器,所有修改该指针所指向内存中内容的操作都必须通过该指针来修改,而不能通过其它途径(其它变量或指针)来修改;这样做的好处是,能帮助编译器进行更好的优化代码,生成更有效率的汇编代码.如 int *restrict ptr, ptr 指向的内存单元只能被 ptr 访问到,任何同样指向这个内存单元的其他指针都是未定义的,直白点就是无效指针(野指针)。这个关键字只能在C99标准的C程序里使用,C++程序不支持,restrict的起源最早可以追溯到Fortran。
restrict是C99引入的指针限定符,它确保指针是访问特定数据对象的唯一途径,帮助编译器进行优化,提高代码效率。通过restrict,编译器知道同一内存单元只能通过指定指针访问,其他途径的修改将被视为未定义行为。这个关键字仅适用于C99标准,不被C++支持,起源于Fortran。
246

被折叠的 条评论
为什么被折叠?



