有什么用memset的()的返回值吗?(What's the use of memset()

2019-08-03 13:05发布

memset()被声明为返回void* ,始终是相同的值传递给函数的地址。

有什么用的返回值? 为什么它不返回void

Answer 1:

签名与所有其他类似功能线: memcpy() strcpy()等。我一直认为这样做是为了使一个链调用这样的功能,以及以其他方式在表达式中使用这样的电话。

不过,我从来没有碰到过一个真实世界的情况下,我觉得必须以这种方式使用的返回值。



Answer 2:

它可用于调用链接,如:

char a[200];
strcpy(memset(a, 0, 200), "bla");


Answer 3:

为了使用该函数作为参数用于另一种功能,例如sprintf



Answer 4:

谷歌搜索,看看返回什么memset的,当我遇到这个问题就来了。

我有一些代码,我测试一个值,然后如果这是真正的考验,看是否有值是零。

因为在C中没有完全可移植的方法来测试零我在中间运行memset的。

所以我的代码是:

if ( a==true && (memcmp(memset(zeros, 0, sizeof(zeros)), b, sizeof(zeros)) == 0) )

这讲在前面的问题中列出的链接的目的,但它是这种技术使用的一个例子。

我要把它留给别人去判断,如果这是一个良好的编码与否。



文章来源: What's the use of memset() return value?
标签: c++ c memset