ISO13849是评估复杂机器控制系统安全性的基础。它是一个基础的功能安全标准,包含国际上统一的要求,涉及到确定所需的性能等级和确定与安全有关的控制部件,直到安全功能的实现。旨在帮助建立具有足够可靠性的机械安全系统。对于机器制造商和用户,ISO13849是安全操作的指南。尽管用于定义系统结构的类别相同,但该安全标准取代了旧的EN954-1标准并进行了许多改进。为了安全操作机器,关于一些ISO13849的基本内容,还是需要了解的。ISO13849的追溯ISO13849可追溯到旧标准EN954-1、IEC61508FAQ具有ISO13849-1的良好简明史。图1-描述ISO61508的IEC138
这是一个非常幼稚的问题。如果我们看看C和C++标准委员会,他们目前正在致力于添加十进制浮点标准类型:linktotheCproposallinktotheC++proposal所以看起来我们可能会有一个标准化的decimal128类型,而我们还没有任何标准化的binary128类型(四精度而不是简单的扩展double)。这种情况是有技术原因还是纯粹是“政治”? 最佳答案 四精度二进制float不能替代十进制类型。精度问题仅次于十进制数的表示。这个想法是在语言中添加一种类型来支持像0.1这样的数字表示,而不会损失任何精度——这是二进制
我找不到基于锁和无锁原子之间的语义差异。据我所知,就语言而言,差异在语义上没有意义,因为该语言不提供任何时间保证。我能找到的唯一保证是内存排序保证,这两种情况似乎都相同。(如何)原子的无锁性会影响程序语义?即,除了调用is_lock_free或atomic_is_lock_free之外,是否有可能编写一个定义明确的程序,其行为实际上受到原子是否无锁的影响?这些功能甚至具有语义意义吗?或者它们只是用于编写响应式程序的实用hack,即使该语言从一开始就没有提供时间保证? 最佳答案 至少有一个语义差异。根据C++111.9程序执行/6:W
难道find_if不能只是find的重载吗?std::binary_search和friend就是这样做的... 最佳答案 谓词是一个有效的查找对象,因此您可能会产生歧义。考虑将find_if重命名为find,那么你有:templateInputIteratorfind(InputIteratorfirst,InputIteratorlast,constT&value);templateInputIteratorfind(InputIteratorfirst,InputIteratorlast,Predicatepred);然后,应
像int这样的原始数据类型的大小究竟取决于什么?编译器处理者开发环境还是这些或其他因素的组合?对其原因的解释将非常有帮助。编辑:很抱歉造成混淆..我想问的是像int这样的原始数据类型,而不是关于POD,我知道POD可以包含结构,而结构是一个完全不同的球类游戏,图片中有填充.我已更正问题,此处的编辑说明应确保有关POD的答案看起来不相关。 最佳答案 我认为这个问题有两个部分:允许原始类型的大小。这isspecifiedbytheCandC++standards:这些类型允许它们必须具有的最小值范围,这隐含地为其大小设置了一个下限以位为
有没有一种方法可以使用typedef整数/浮点类型来定义这意味着没有别名?等同于(但原始结构)的东西:templatestructrestrict{T*__restrictdata;};作为相关问题,是否可以询问gcc它确定指针的别名/无别名是什么? 最佳答案 如评论中所述,许多较新的C++编译器确实支持restrict类型限定符的C99实现。由于restrict在C++中不是保留关键字,因此编译器通常使用__restrict或__restrict__。两者GCC和VisualC++很好地记录这一点,并明确引用C99。C++1998
我查看了C++0x标准草案,据我所知,其中没有关于堆栈溢出的内容。搜索“stackoverflow”没有结果,搜索“stack”我只得到了对stackunwinding和std::stack的引用。这是否意味着不能有符合C++标准的实现,因为当内存被本地对象(如巨大的本地数组)耗尽时,没有允许处理错误的机制?thisquestion的答案表明至少C标准没有提到堆栈溢出。为了使问题具体化,考虑这个程序//ProgramAintidentity(inta){if(a==0)return0;charhugeArray[1024*1024*1024];//1GBreturnidentity(a
我在这里阅读了很多关于C++的标准容器(如“list”或“map”)是否线程安全的帖子,他们都说这不是一般的。并行读取应该没问题,但是并行写入或并行读取和写入可能会导致问题。现在我发现在www.cplusplus.com在大多数操作期间访问或修改列表是安全的。一些例子:map::find容器被访问(const和非const版本都不会修改容器)。没有访问映射值:并发访问或修改元素是安全的。map::insert容器被修改。并发访问现有元素是安全的,尽管在容器中迭代范围是不安全的。我是否误解了cplusplus.com,或者关于std容器中的线程安全还有什么我必须知道的。提前致谢!PS:我
一个简单的问题:为什么C++11不提供“用户”(实际上是标准库)定义的文字来创建std::string,例如autostr="helloworld"s;//strisastd::string与C++一样,Objective-C既支持C风格的字符串,也支持对用户更友好的库类型NSString;然而,与C++不同的是,没有人会混淆两者,因为通过在字符串文字前加上@来创建NSString是微不足道的。事实上,很少看到Objective-C代码的文字没有有@前缀。每个人都知道这样做的方式,使用NSString并继续使用它。C++11用户定义文字允许这样做,事实上Stroustrup的C++11
我目前正在用C编写一个回调函数:staticsize_twritedata(void*ptr,size_tsize,size_tnmemb,void*stream){size_twritten=fwrite(ptr,size,nmemb,(FILE)*stream);returnwritten;}此函数将在另一个函数中使用,该函数执行HTTP请求、检索请求并将其写入本地机器。writedata函数将用于后面的部分。整个操作必须是多线程,所以我在write和fwrite之间犹豫不决。有人可以帮助我概述C中write()和fwrite()之间的区别,这样我就可以选择最适合我的问题的一个?