我的代码被人指出几个问题
想听听这里的高手的意见
1。变量应该在什么地方申明?
int a=
……
for()
{
a=……
}
a只在循环里面用到,离申明的代码行有一定距离
有人告诉我应该在for循环里面申明,现用现申明
如果这样的话会不会造成for循环每次都给变量分配和施放空间,
造成效率的下降?2。
对变量a的操作
for()
{
a=……
对变量a的操作
}
“对变量a的操作”是相同的一句,
那人说这样的代码重复了,
应该修改循环条件,把这句完全放在循环里面,
否则一出错就是两处错误
3。我用了goto语句被指出不好
是否应该避免用goto?

解决方案 »

  1.   

    问题1确实如此,不过对现在的PC没多大影响
    问题2得看你的目的是什么
    问题3:用goto的确不好,但必要时还得用,效果还是不错的
      

  2.   

    第二个问题是这种情况,一个链表:
    struc stc
    {
    char * a;
    stc * b;
    }
    stc * c=new stc
    ……
    stc * d=c
    d->a='a'
    while(d->b!=NULL)
    {
    d=d->b
    d->a='a'
    }
    那人说d->a='a'不该重复写两次
    说我编程不太规范之类
      

  3.   

    程序书写格式也不规范,应该这么写,当然实际编程的时候要注意变量名易读,也要言简意赅。stc* p = c;
    while(NULL != p)
    {
       p->a = 'a';
       p = p->b;
    }
      

  4.   

    如何写代码就看你的代码是干什么用的。不能一概而论说代码的好坏。比如你的第一个例子,如果在游戏编程中,就不能把int a; 的声明放到循环中去。而且经常要把一句话搞定的东西拆成几个话来写。但无论怎样,有一个好的编程习惯是必要的。另外我不同意楼上的一开始就要考虑代码的优化,一般是先写代码,再作优化,而且是在速度很关键是程序中,我们才作优化。不是非常必要的话没有必要优化代码。
      

  5.   


    问题1 :我认为应该写在循环外面
    问题2 :没看太明白,应该是具体问题具体分析吧
    问题3:用goto容易导致程序思维的混乱我认为,代码首先要具有可读性,不要把程序弄得晦涩难懂
    其次是优化问题,但是对于小程序来讲,凑合用就行了,我就是这样
    没啥经验,胡说几句:)
      

  6.   

    我3年C++开发经验:1:外面
    2:尽量易读
    3:goto挺好的。不过我基本上不用。几十行到十行的也不算什么优化,常常为了易读,把十行的代码写成几十行;
    不过一样的功能:别人8000~10000行代码量的系统常常被我改成4000~5000行来实现。哈哈