提问者:小点点

使用memset初始化整数数组而不是默认的零初始化(如数组[10]={0})是否有性能优势?


鉴于memset只能用于初始化值为0或-1的整数数组,您使用它进行零初始化的原因是什么。它的功效仅仅在于字符串初始化吗?

array[10];
memset(array,0,sizeof(array)); 

array[10]={0};

后一种方式不总是更好吗?


共1个答案

匿名用户

后一种方式不总是更好吗?

代码的清晰性,除非某些原因迫使。

数组[10]={0};是清晰的,但不是后续归零的解决方案。

memset(array,0,sizeof array);可以在array的整个生命周期内多次执行。memset()不是真正的初始化,而是赋值。

有什么性能优势吗

一个好的编译器无论以哪种方式都能发出高效的代码。如果存在性能优势,则可能表明编译器较弱。