那位朋友知道__restrict__关键字的作用是干什么?

IUnknown9989 2005-05-22 04:42:55
那位朋友知道__restrict__关键字的作用是干什么?

谢谢!
下面是google的结果---我没有看明白:
As with the C front end, G++ understands the C99 feature of restricted pointers, specified with the __restrict__, or __restrict type qualifier. Because you cannot compile C++ by specifying the -std=c99 language flag, restrict is not a keyword in C++.

In addition to allowing restricted pointers, you can specify restricted references, which indicate that the reference is not aliased in the local context.

void fn (int *__restrict__ rptr, int &__restrict__ rref)
{
/* ... */
}

In the body of fn, rptr points to an unaliased integer and rref refers to a (different) unaliased integer.

You may also specify whether a member function's this pointer is unaliased by using __restrict__ as a member function qualifier.

void T::fn () __restrict__
{
/* ... */
}

Within the body of T::fn, this will have the effective definition T *__restrict__ const this. Notice that the interpretation of a __restrict__ member function qualifier is different to that of const or volatile qualifier, in that it is applied to the pointer rather than the object. This is consistent with other compilers which implement restricted pointers.

As with all outermost parameter qualifiers, __restrict__ is ignored in function definition matching. This means you only need to specify __restrict__ in a function definition, rather than in a function prototype as well
...全文
595 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zsal 2005-05-23
  • 打赏
  • 举报
回复
http://dev.csdn.net/develop/article/21/21390.shtm
看看这个,也许对你有所帮助。
IUnknown9989 2005-05-23
  • 打赏
  • 举报
回复
"restrict 是c99的一个关键字"

请问这个restrict关键字有什么用?
谢谢
step_by_step 2005-05-23
  • 打赏
  • 举报
回复
简单的意思就是说:

restrict 是c99的一个关键字,而不是c++的关键字,为了在g++中使用这个特性,g++自己进行了内部扩充引入了__restrict__这个关键字。

good luck
  • 打赏
  • 举报
回复
应该就是C99的 restrict 啦, gcc 把它扩展到鸟 C++ 中。
liujingfu123 2005-05-23
  • 打赏
  • 举报
回复
我也不知道啊,学习先
qfeng_zhao 2005-05-23
  • 打赏
  • 举报
回复
不明白,帮忙顶一下
zsal 2005-05-23
  • 打赏
  • 举报
回复
Fortran编译程序允许做出这样的假定:如果传递给函数两个数组参数,那么这两个数组相互是没有重叠的。对于C++就不能这样假定。由这个假定Fortran子程序得到15%到30倍的加速,具体情况依赖于编译程序和计算机体系结构。在这里令人吃惊的速度提升来自于具有特殊硬件机器上的向量化运算,如Cray机器。
C语言是强调效率的,这种情况被认为是一种侮辱,对此ANSI C委员会提出过一种称为noalias的机制来解决这个问题,用它来说明某个C指针可以认为是没有别名的。不幸的是这个建议来晚了,而且又是如此的不成熟。这件事激怒了Dennis Ritchie,拿他对C的标准化过程做了唯一的一次干预。他写了一封公开信说“noalias必须靠边站,这一点是不能协商的。”
后来Cray的Mike Holly又抓起了这个难题,向数值C语言扩充工作组和C++委员会提出了一种改进的反别名建议。所建议的想法是允许程序员说明一个指针可以认为是没有别名的,采用的方式是将它说明为restrict。
这个建议C99采纳了,但标准C++拒绝了。在C++中将依赖编译器来兼容C99,这也就是楼主查到的那一段说明。
ltc_mouse 2005-05-23
  • 打赏
  • 举报
回复
学习~
IUnknown9989 2005-05-22
  • 打赏
  • 举报
回复
分隔函数?

什么意思?
xuzheng318 2005-05-22
  • 打赏
  • 举报
回复
/* Divide S into tokens separated by characters in DELIM. Information
passed between calls are stored in SAVE_PTR. */
extern char *__strtok_r (char *__restrict __s,
__const char *__restrict __delim,
char **__restrict __save_ptr) __THROW;
#if defined __USE_POSIX || defined __USE_MISC
extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
char **__restrict __save_ptr) __THROW;
分隔函数
内容概要:本文档围绕基于H桥级联五电平逆变器的三相LCL滤波器SPWM调制技术,利用MATLAB/Simulink平台开展系统建模与仿真分析,深入探讨多电平逆变器的调制策略、LCL滤波器的设计方法及其在电力电子系统中的应用。文档不仅聚焦于核心仿真模型的构建与性能验证,还系统整理了大量相关科研资源,涵盖VSG控制、双机并联、下垂控制、无功优化、储能配置、微电网调度等多个前沿方向,展示了MATLAB/Simulink在电力系统、新能源控制、信号处理及智能优化等领域的广泛应用。同时强调科研过程中逻辑思维、创新意识与借助优质仿真资源的重要性,倡导“借力”提升科研效率。; 适合人群:电力电子、电气工程、自动化、新能源系统及相关专业的研究生、科研人员及从事电力电子与微电网仿真的工程技术人员。; 使用场景及目标:①开展多电平逆变器与LCL滤波器的仿真设计及性能优化研究;②深入掌握SPWM调制技术及其在逆变系统中的实现机制;③复现高水平论文中的控制策略与仿真模型,支撑科研项目或论文写作;④结合提供的网盘资源快速获取主流研究方向的Matlab/Simulink代码与模型,加速科研进程。; 其他说明:所有仿真资源可通过关注公众号“荔枝科研社”并访问指定百度网盘链接免费获取,建议读者系统学习文档内容并结合自身研究课题进行实践与创新,充分发挥资源的参考价值与实用价值。
内容概要:本文聚焦于VSG(虚拟同步发电机)双机并联系统中动态虚拟复阻抗在环流抑制与功率均分方面的关键作用,通过Simulink仿真平台系统性地实现了孤岛微电网环境下多逆变器并联运行的核心控制策略。研究深入探讨了动态虚拟复阻抗的设计原理及其对环流的有效抑制机制,确保有功与无功功率的精确均衡分配,同时涵盖了VSG控制、下垂控制、电压电流双闭环调节及系统稳定性分析等核心技术模块。该仿真模型不仅验证了控制算法在静态条件下的有效性,更着重考察其在负载突变等动态工况下的响应速度、鲁棒性与系统整体稳定性,为微电网的可靠自治运行提供了理论依据与实践参考。; 适合人群:具备电力电子、自动控制理论及微电网相关基础知识,从事电气工程、新能源发电系统、分布式能源控制等领域研究的研发人员及高校研究生。; 使用场景及目标:① 深入理解VSG双机并联系统中环流的产生机理及动态虚拟阻抗的抑制方法;② 掌握动态虚拟复阻抗的设计流程及其在实现功率均分中的核心作用;③ 利用Simulink搭建并调试多逆变器协同控制系统,服务于科研项目开发、高水平论文复现或实际工程方案的前期验证。; 阅读建议:建议结合提供的Simulink仿真模型进行动手实践,重点关注控制器参数(如虚拟阻抗值、PI调节器增益)的整定过程与系统动态响应之间的关系,并推荐参考相关领域的权威文献以深化对VSG先进控制策略的理解与优化能力。
内容概要:本文档介绍了一个基于Simulink的发电机故障暂态仿真模型,旨在深入研究发电机在发生短路、接地等典型故障时电压、电流等关键电气量的动态变化过程。通过建立精确的发电机数学模型,并结合实际故障场景进行建模,利用Simulink平台开展高保真度的暂态仿真分析,全面揭示故障期间系统的瞬态响应特性与演化规律。该模型不仅能够准确模拟电磁暂态过程,还可用于电力系统稳定性评估、继电保护装置的设计与校验、故障诊断与定位等关键技术环节,具有重要的科研价值与工程应用前景。此外,文档还整合了大量电力系统相关仿真资源,涵盖微电网、逆变器控制、储能优化、综合能源系统等多个前沿方向,体现了其在电力系统建模仿真领域的广度与深度。; 适合人群:具备电力系统分析基础理论知识和Simulink仿真操作经验的高校研究生、电力领域科研人员及从事电力设备研发与系统运维的工程技术专家。; 使用场景及目标:①应用于高校课程设计与实验教学,帮助学生直观理解发电机故障机理及暂态过程;②服务于科研项目中对新型保护策略、控制算法或系统稳定性的验证与优化;③为实际工程中发电机保护定值整定、故障应急预案制定及系统安全性评估提供可靠的仿真支撑。; 阅读建议:建议读者结合提供的Simulink模型文件与文档说明同步学习,重点掌握发电机建模假设条件、不同故障类型的设置方法以及仿真结果的分析流程,鼓励通过调整系统参数进行对比实验,以深化对电力系统暂态行为本质的理解。

70,038

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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