c语言中void的初始值设定项,全局变量的定义/初始化:常见做法?(面向C)

几天前我发布了一个类似的问题,但它更适合于任何*.designer.cs文件。这个问题是面向类内全局变量的声明和初始化的。据我所知,将所有全局变量放在类定义的开头,然后按任意顺序(我更喜欢getter和setter,然后是构造函数,然后是事件,然后是misc函数),这几乎是常见的做法(除了*.designer.cs文件)。好吧,我已经看到了,并且在声明中设置了一个全局变量的地方,我自己也做过。

我不是指:

ClassA clA = new ClassA();

我指的是:

private int nViewMode = (int)Constants.ViewMode.Default;

现在,我听到人们说,在某些层面上我可以同意,这些变量的初始化,那些不需要

new

语句声明变量时,应在构造函数或初始化函数中完成。但是,当他们说,他们可能意味着之前的陈述是好的,但不是以下:

错误的方式

private int nTotal = 100;

private int nCount = 10;

private int nDifference = nTotal - nCount;

可能的正确路线

private int nTotal = 100;

private int nCount = 10;

private int nDifference = 0;

void ClassConstructor()

{

nDifference = nTotal - nCount;

}

我的问题是:

在这种情况下,最常见/最标准的做法是什么?

两者的优缺点是什么?

这些问题只与某些语言相关,而与其他语言无关吗?

我在打字的时候最后想到的问题是,这就是原因。在VisualStudio 2008中,我似乎可以在全局变量声明上放置断点,而我不认为我可以在我在大学中编写C++时使用。此外,我相信在大学里,你不能使用一个变量,它是在当前变量之前被声明的,但又是C++中的变量。所以我不确定这些问题是否只适用于MSV产品(我们在大学使用了Borland)、更新的编译器,或者其他什么。如果有人有任何见解,我将不胜感激。谢谢。