为什么还有在开放源C项目中未使用,例如>。
我确实喜欢混合的宣言和守则,因为它使守则更加可读,并且通过将变数的范围限制在尽可能小的限度内,难以看到。 http://google-eguide.googlecode.com/svn/trunk/cppguide.xml# Local_Variables”rel=“noreferer”_for C++/a。
为什么还有在开放源C项目中未使用,例如>。
我确实喜欢混合的宣言和守则,因为它使守则更加可读,并且通过将变数的范围限制在尽可能小的限度内,难以看到。 http://google-eguide.googlecode.com/svn/trunk/cppguide.xml# Local_Variables”rel=“noreferer”_for C++/a。
这是一个老的问题,但我会说,惯性是大多数这些项目仍然使用《欧洲倡议》声明规则的原因。
然而,还有其他一些可能性,从有效到rid:
便携式。 许多开放源项目基于以下假设开展工作: pe铁ANSI C是软件最便携的方式。
年龄。 其中许多项目预示着C99的幽灵,作者可能更喜欢一种连贯的编码风格。
忽视。 提交C99号文件的节目者不知道混合宣言和守则的好处。 (替代解释:开发商充分了解潜在的权衡,并决定混合声明和声明不值得努力。) 我非常不同意,但很少两名方案者会同意任何内容。
FUD. 方案者将混合宣言和守则视为“C++ism”,并出于这一原因不喜欢。
{
int c;
c = 1;
{
int d = c + 1;
}
}
C89。 至于这些项目为何使用混合声明(假设情况确实如此),最有可能出现“如果它不打碎,就没有固定。
几乎没有理由改写Linot kernel,以便进行不会带来业绩收益的宇宙变革。
如果守则基础正在发挥作用,那么为什么出于共鸣的理由而加以改变?
没有福利。 在职能开始时(如帕斯卡尔)申报所有变量更为明确,在C89中,你也可以宣布每个范围(如坡道)开始时的变量,这些变量既实用又简明。
我不记得在《油轮法》的风格指南中任何针对这一点的阻截。 然而,它确实说,职能应当尽可能小,只做一件事。 这将解释为什么少有混合的宣言和法典。
在一个小的职能中,在范围开始时宣布变数为Intro,向您讲述了不久之后出现的情况。 在此情况下,变式声明的移动非常有限,因此可能不会产生任何效果,或者通过将易酒者推入人群来掩盖有关功能的某些信息,这样说。 有理由宣布国王的到来在之前。 他进入了一个房间。
OTOH这一功能必须混合变数和编码才能阅读,可能太大。 这是一些迹象(除了带过于宽的区块、线性评论和其他东西)之一,即某一职能的某些部分需要从单独的职能(并宣布<代码>static,以便优化者能够将其排列)。
在职能开始时保留声明的另一个原因是:如果你需要重新确定执行守则中声明的顺序,那么你可以在不实现声明的情况下摆脱其范围的变化,因为刑法中宣布的变量的范围在登革站中并不明显(除非你利用一个集团来显示其范围)。 这很容易固定下来,因此它只是空洞,但新法典经常经历这种转变,而诺言可能是累积的。
还有一个原因:你可能会试图宣布一个变数,以便从一项职能中采用错误的回归代码,例如:
void_func();
int ret = func_may_fail();
if (ret) { handle_fail(ret) }
这样做完全合理。 但:
void_func();
int ret = func_may_fail();
if (ret) { handle_fail(ret) }
....
int ret = another_func_may_fail();
if (ret) { handle_other_fail(ret); }
Ooops!ret
两次界定。 “So” 删除你说的第二项声明。 但是,这使得代码不对称化,而归根结底,你的局限性更重。
当然,我把宣言和守则混为一谈;没有理由对此表示怀疑(或者说,你的卡马可以接手你的话:-)。 但是,你们应当知道随之而来的问题是什么。
难道这不需要吗? 分离是否好? 我在C++中这样做,C++也有这一特点。
没有理由改变这种守则,而C99仍然没有得到汇编者的广泛支持。 主要是关于便携式。
For example, let s say I want to find a particular word or number in a file. The contents are in sorted order (obviously). Since I want to run a binary search on the file, it seems like a real waste ...
最好、最小、最快、开放的来源、C/C++ 3d 提供方(在3ds max模型的支持下),而不是通用公平市价,
Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...
I m trying to find the source of a bug I have found in an open-source application. I have managed to get a build up and running on my Windows machine, but I m having trouble finding the spot in the ...
I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...
I was wondering if there were any good free graphics libraries for C that are easy to use? It s for plotting 2d and 3d graphs and then saving to a file. It s on a Linux system and there s no gnuplot ...
Is there anything other than DDD that will draw diagrams of my data structures like DDD does that runs on Linux? ddd is okay and runs, just kind of has an old klunky feeling to it, just wanted to ...
Please note that this is not homework and i did search before starting this new thread. I got Store an int in a char array? I was looking for an answer but didn t get any satisfactory answer in the ...