使用 {0}、{0、} 进行数组初始化? [英] Array initialization with {0}, {0,}?

查看:60
本文介绍了使用 {0}、{0、} 进行数组初始化?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我要初始化 myArray

Say I want to initialize myArray

char myArray[MAX] = {0};  
char myArray[MAX] = {0,};  
char myArray[MAX]; memset(myArray, 0, MAX);  

它们是否都相同或优于另一个?

Are they all equal or any preferred over another?

谢谢

推荐答案

它们在生成的代码方面是等效的(至少在优化的构建中),因为当使用 {0} 语法初始化数组时,所有未显式指定的值都隐式初始化为 0,编译器将知道足以插入对 memset 的调用.

They are equivalent regarding the generated code (at least in optimised builds) because when an array is initialised with {0} syntax, all values that are not explicitly specified are implicitly initialised with 0, and the compiler will know enough to insert a call to memset.

因此,唯一的区别在于风格.选择将取决于您使用的编码标准或您的个人喜好.

The only difference is thus stylistic. The choice will depend on the coding standard you use, or your personal preferences.

这篇关于使用 {0}、{0、} 进行数组初始化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆