我想写一些高质量的C代码.有人能指点我一些文章,网站......无论我需要什么样的东西都有例子.我已经看过并阅读过K&R C书.
但时代已经改变,有些人必须对质量C代码有更多的说法.另一个重要的事情是你如何确保你作为程序员有书面质量的C代码?
在GCC中是否有任何标志(如-Wempty-body在clang中),这可以帮助我在while/for循环的大括号后检测分号?有时人类很难找到这些简单的错误.
int i = 0;
for (i = 0; i < 10; ++i);
{
cout << i << endl;
}
Run Code Online (Sandbox Code Playgroud)
我使用GCC 4.7.3和clang 3.2-1~exp9ubuntu1.
编辑:我还检查编译器是否可以帮助我在"if-else语句"之后发现这些错误.
if (i == 0)
{
cout << i << endl;
}
else;
{
cout << i << endl;
}
Run Code Online (Sandbox Code Playgroud)
什么是有趣的gcc比clang更有用(-Wall -pedantic -Wempty-body通过打印警告使用此flags():
main.cpp:30:9: warning: suggest braces around empty body in an ‘else’ statement [-Wempty-body]
Run Code Online (Sandbox Code Playgroud) 这让我疯了,因为它完全违反了我去除它的努力:
int k = keyCode; //keyCode being a variable declared by a keyPress
//in the Processing library
//k and keyCode are working properly.
if ((k - UP)*500 == 0); //int UP=38;
{
println((k-UP)*500 == 0);
//some other code here
}
Run Code Online (Sandbox Code Playgroud)
结果?"false"(并删除'== 0',一个非0的数字).据我所知,只有当你使用箭头键(k == 37,38,39,40; 38为UP)才能使这个条件成立.
有没有这样的不一致,可能是什么原因导致的?(条件的奇怪格式是因为它解决了类似的问题,RIGHT键无法正常工作,只有k == RIGHT).