鉴于memset只能用于初始化值为0或-1的整数数组,您使用它进行零初始化的原因是什么。它的功效仅仅在于字符串初始化吗?
array[10];
memset(array,0,sizeof(array));
array[10]={0};
后一种方式不总是更好吗?
后一种方式不总是更好吗?
代码的清晰性,除非某些原因迫使。
数组[10]={0};
是清晰的,但不是后续归零的解决方案。
memset(array,0,sizeof array);
可以在array
的整个生命周期内多次执行。memset()
不是真正的初始化,而是赋值。
有什么性能优势吗
一个好的编译器无论以哪种方式都能发出高效的代码。如果存在性能优势,则可能表明编译器较弱。