memset()返回值有什么用?

sha*_*oth 87 c c++ memset

memset()声明返回void*,它始终与传递给函数的地址相同.

返回值的用途是什么?为什么不回来void

Jur*_*aho 119

它可以用于呼叫链接,如:

char a[200];
strcpy(memset(a, 0, 200), "bla");
Run Code Online (Sandbox Code Playgroud)

  • C程序员喜欢不可读的代码,因此在设计标准函数时必须允许无限链接. (23认同)
  • 是的,它绝对是"链接"用例. (9认同)
  • 我赞成了答案,因为这是一个有趣的案例.但在现实生活中,我认为最好将memset和strcpy呼叫分开. (6认同)

NPE*_*NPE 33

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

也就是说,我从来没有遇到过现实世界的情况,我觉得有必要以这种方式使用返回值.


小智 12

为了将该函数用作另一个函数的参数,例如 sprintf