当前位置:  开发笔记 > 编程语言 > 正文

是否在C ++标准中定义了memcpy(dest,src,0)?

如何解决《是否在C++标准中定义了memcpy(dest,src,0)?》经验,为你挑选了1个好方法。

这个问题和许多更多的是问,如果一个呼叫本网站上的许多问题中的memcpy()是与零值指定的长度\大小有效。回答时,每个人都引用当前的C标准(在本例中为C17 ISO / IEC9899:2017第283页),

如果声明为as的参数size_t n指定函数数组的长度,则对该函数n的调用的值可以为零。除非在本节中对特定功能的描述中另有明确说明,否则此类调用上的指针参数仍应具有有效值,如7.1.4中所述。在这样的调用中,找不到字符的函数没有出现,比较两个字符序列的函数返回零,而复制字符的函数则复制零字符。

但是,这来自C标准,C ++标准引用。

在当前的C ++标准(即C ++ 17 ISO / IEC 14882)的何处列出了相同的定义?CC ++具有两种不同的标准(和语言),据我所知,您不能引用一个标准并期望在另一个标准中存在相同的规则/行为。

如果C标准中的这种引用在C ++中有效而未在标准中明确说明,那么有人可以提供一个源来备份CC ++之间的这种连接吗?



1> R Sahu..:

C ++ 17标准说明了有关C标准库的内容:

1 C ++标准库还提供C标准库的功能,并对其进行了适当调整以确保静态类型安全。

2许多库函数的描述都依赖于C标准库来获取这些函数的语义。在某些情况下,本国际标准中指定的签名可能与C标准库中的签名不同,并且本国际标准中可能会声明其他重载,但其行为和前提条件(包括使用restrict除非另有说明,否则ISO C 限定词)相同。

关于你的问题

如果来自C标准的引号在C ++中有效而未在标准中明确说明

答案是“是”。

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有