当前位置:  开发笔记 > 编程语言 > 正文

如何最简洁地将变量初始化为0?

如何解决《如何最简洁地将变量初始化为0?》经验,为你挑选了1个好方法。

比方说,我们想声明三个整数,p,q,和r.最好的做法是将它们初始化为0.ç这样做是这样:

int p, q, r;
p = q = r = 0;

C++这样做的方式是

int p(0), q(0), r(0);

在C中,事情是美好而紧张的; 0仅使用一次.相反,C++调用要求0重复三次 - 每个变量一次.有点冗长.

有没有更简洁的方法使用C++方法初始化变量,还是每个变量声明所需的初始值?

另外,将C风格的初始化与C++代码混合在一起有什么问题吗?谢谢:^)

编辑:修复了正确编译的代码.现在,声明和初始化变量需要两行,所以问题不是很好,但我会把它留给后人.希望有人帮助.



1> Grzegorz Szp..:

最佳做法是将它们初始化为0.

这可能甚至是有害的,因为它会使编译器的保护变得沉默.考虑以下代码:

 int p, q, r;
 p = q = r = 0;

 // ...

 p = FIRST_INDEX;
 r = LAST_INDEX;    // ups, we forget to initialize q with some real value

 // ...
 doSomething(p, q, r);

通常情况下,您会收到如下警告:

警告:'q'在此函数中未初始化使用[-Wuninitialized]

但由于q已经初始化,编译器认为这很好.

使用代码混合声明

如果您有C++或至少符合C99标准的编译器,那么有人可能会说,通过移动最接近第一次使用的变量声明,可以更好地设计代码:

// some executable code

int p = FIRST_INDEX;
int q = LAST_INDEX;
int r = getSampleCoefficient();

doSomething(p, q, r);

这样,可以完全避免前面示例中提出的问题,因为声明和实际代码之间没有间隙.


您可以p = q = r = 0;在C++中使用,这只是编码风格的问题.

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有