|
|
发表于 2005-6-17 09:55:01
|
显示全部楼层
Post by gsuse
Ansi 没有明文规定,但是,不符合惯例就是违背规定,你的程序有一大堆告警
编译都告警,就别说 lint 了,所以养成良好的习惯才是真的,如果在windows
下编程,自然不用 return 可是,unix 需要返回值 就算可以忽略但仍然需要
这就是规定,没有小程序,只有大程序员
什么是惯例;gnu还是kernel 我记得 像bsd等稍微老一点的格式都是这样的(新的没心思关心过)
int
main(argc, argv)
int argc;
char *argv[];
{
if (argc < 2)
{
puts("Usage : test arg1..");
return 0;
}
printf("argv[1] is %s \n", argv[1]);
return 1;
}
这样去写算不算惯例,可是这是unix源代码的写法,不知道多少大师都这么写。
后来就成这样了
int
main(int argc, char **argv)
{
.........
}
关于main函数的详细内容大家还是参考一下unix高级环境编程的第七章 ,讲的很详细。
关于格式的问题我有些个人见解。这里班门弄斧了。
1:首先,也就是第一点,是什么呢。当然是个性化。这个个性化来源于哪里呢,做梦梦见的么,
那肯定不行,基本是遵照gnu风格或者基于unix风格(她俩也长得挺像的么)
2:然后,然后干啥呢?然后就是然后,然后再遵照客户的意见了,客户说怎么看着方便那
你就怎么来。
3:七次呢:其次就是老板了。
举个例子:
int
main(void)
{
}
看着不爽 现在的linux 都变了
int main(void)
{
}
还有。。linux 内核风格
if (......) {
......
......
}
这个看起来还可以,不过当你的if else 和代码多了的时候找{}对应关系就烦死了。所以
如果不是给内核写补丁(当然给内核写补丁一定要遵照人家得标准么)就这样:
if (......)
{
.......
.......
}
这样如果严格所进的代码,看起来非常整齐,不是为了好看 ,除了逻辑错误,很容易找的。
还有呢。。大师的风格,其实大家都是照着当年c创始人的风格,就是那本The c program
language 是这么写的吧。就是c语言圣经。
最后一句话:如果你成为大师,那么你的风格就是楷模。
这么个题目回复了这么多。 :ask |
|