游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2285|回复: 7

一个有关于NEHE格式的问题

[复制链接]

11

主题

137

帖子

142

积分

注册会员

Rank: 2

积分
142
发表于 2006-12-8 21:23:00 | 显示全部楼层 |阅读模式
我以前在学程序的时候, 我个人的感觉,就是喜欢把函数的声明放在前面, 而函数的定义放在main函数以后, 我觉的这样比较好,因为比较清晰。但是NEHE的写作者为什么都选择把main函数放在最后呢, 我知道他们是高手, 所以我想问下为什么?

还有就是我这个人特别执著于格式的问题, 我个人感觉我特别不喜欢 if {} else if 的格式, 我觉的把程序弄的很乱, 比较喜欢switch..case 格式, 不知道你们怎么看,另外就是有个关于括号的问题,
我发现
if () {
}
比较漂亮,但是有点让代码难懂
if ()
{
}
比较清晰, 但是总是很容易把程序撑的特别的大。
不知道各位怎么想(不知道这些问题是不是很无聊)?
我最近发现一本叫代码大全的书, 我觉的特别的好看,虽然我只翻了目录。

21

主题

230

帖子

230

积分

中级会员

Rank: 3Rank: 3

积分
230
发表于 2006-12-8 21:49:00 | 显示全部楼层

Re:一个有关于NEHE格式的问题

这个简单啊。
如果 大家都用哪个哪个就是好的。关键是整个代码统一。

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2006-12-8 22:18:00 | 显示全部楼层

Re:一个有关于NEHE格式的问题

个人习惯

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-12-8 22:36:00 | 显示全部楼层

Re:一个有关于NEHE格式的问题

要么放最后,要么放最前面。反正容易找到就是。
我有个习惯是如果一个类不可挽回的大的话,我会把那些辅助函数全加上__。然后扔到一个CXXXX_Helper.cpp里去。 主要接口放到CXXX.cpp里。

21

主题

230

帖子

230

积分

中级会员

Rank: 3Rank: 3

积分
230
发表于 2006-12-9 01:53:00 | 显示全部楼层

Re:一个有关于NEHE格式的问题

我有个习惯,凡是我想显示的的代码量多的话我就用
if()
{
}可以多一行。
如我要显示我算法的精巧的话我就用
if(){
}
可以少一行。

24

主题

256

帖子

267

积分

中级会员

Rank: 3Rank: 3

积分
267
发表于 2006-12-9 08:28:00 | 显示全部楼层

Re:一个有关于NEHE格式的问题

把main()放下最下面。可以省去前面函数的声明,直接定义函数好了。
关于switch.一般有4个以上的分支,我才会去用。
楼主过于追求无关紧要的细节,难成大器呀。
风格统一就行了,

21

主题

230

帖子

230

积分

中级会员

Rank: 3Rank: 3

积分
230
发表于 2006-12-9 23:55:00 | 显示全部楼层

Re:一个有关于NEHE格式的问题

怎么会不成大气呢。
比如,如果你的代码有1001行,然后通过压缩,你就可以把它变成900行。然后说,我这个方法比你的更简单。同样,多打个空行,写漂亮点。就可以说,啊,我今天写了2000行代码。

21

主题

230

帖子

230

积分

中级会员

Rank: 3Rank: 3

积分
230
发表于 2006-12-9 23:58:00 | 显示全部楼层

Re:一个有关于NEHE格式的问题

有看头的写法:               
case 0:
                        {
                                switch(c)
                                {                               
                                case ' ':
                                case '\t':
                                        {                                               
                                                continue; //skip spaces
                                                break;
                                        }                                        
                                case '\n':
                                case '\r':
                                        {                                               
                                                ++m_line;//new line
                                                m_row=0;
                                                continue;
                                                break;
                                        }
                                case '\t':
                                        {                                               
                                                m_row+=8;//tab
                                                continue;
                                                break;
                                        }
                                case '(':
                                        {
                                                tok = LEFT_PARENTHESIS;
                                                state = -1;
                                                break;
                                        }
                                case  ')':
                                        {
                                                tok = RIGHT_PARENTHESIS;
                                                state = -1;
                                                break;
                                        }
                                case  '+':
                                        {
                                                tok = ADD;
                                                state=-1;
                                                break;
                                        }
                                case '-':
                                        {
                                                tok = SUB;
                                                state = -1;
                                                break;
                                        }
                                case '*':
                                        {
                                                tok = MUL;
                                                state = -1;
                                                break;
                                        }
                                case '/':
                                        {
                                                tok = DIVIDE;
                                                state = -1;
                                                break;
                                        }
                                        break;
                                }
                        }

显示简单的写法:
                case ' ':{                                                        continue;        break;  }
                case '(':{        token=LEFT_PARENTHESIS;        state=-1;        break;        }
                case ')':{        token=RIGHT_PARENTHESIS;state =-1;        break;        }
                case '\'':{ token = QUOTE;                        state = -1; break;  }
            case '+':{ token = ADD;                                state = -1; break;  }
                case '-':{ token = SUB;                                state = -1; break;  }
                case '*':{ token = MUL;                                state = -1; break;  }
                case '/':{ token = DIVIDE;                        state = -1; break;  }
                case '\"':{ token = DOUBLE_QUOTE;        state = -1; break;  }
                case '|':{ token = OR;                                state = -1; break;  }
                case '!':{ token = NOT;                                state = -1; break;  }
                case '&':{ token = AND;                                state = -1; break;  }
                case '>':{ token = GREAT;                        state = -1; break;  }
            case '<':{ token = BELOW;                        state = -1; break;  }
                case '=':{ token = EQUAL;                        state = -1; break;  }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 00:42

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表