微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 成功软件开发者的9种编程习惯

成功软件开发者的9种编程习惯

时间:07-06 来源:互联网 点击:

有些人会想:只要程序运行结果好,就不管原程序编得怎样。但绝对不是这样的。软件不是一次性就作完的,有必要做修改,扩展等管理。所以原程序要尽量作成易看懂,管理方便。

这样做,第一是为了软件开发者方便,其次还会影响到软件的性能。管理不方便的程序不会作出好的软件。

希望通过这篇文章能学到好的编程习惯。要理解这文章的内容,你至少要懂得1个开发工具语言。这里举例说明的都是C语言,但你对C语言没有了解也不要担心。这里说明的是原理而不是特定的语言。

1. 语句要结束得彻底---(冒号;)

程序员经常有的失误之一是忘记在语句结束后加一个冒号。这样的问题点不易发现,时而让程序员不知所措。编程时要时时注意每个语句是否以冒号结束,虽然不是所有语言都以冒号结束。下面有忘记点冒号的例子。

int main(void)
{
  /* 没有冒号,导致问题*/
  printf("Hello World!\n")
  return(0);
}

很多的人犯这样的错误。不到几条的程序是不难发现这样的问题,但1000条以上的程序里呢?查找那忘记写冒号了的语句不会是很容易的事。记住,结束一条语句,一定要写冒号,如同一般文章结束后点句号一样。

还有一种关于冒号的失误是不该写冒号的时候写冒号。有经验的程序员看到下面例子会觉得好笑,但笔者确实看到了很多这样的失误。

/* main() 后面不该写冒号 */
int main(int argc, char *argv[]);
{
  printf("Hello World");
  return(0);
}


函数或Method后面是不该写冒号的。

2. 要适合使用空格和tab键

C语言是不分辨空格的,因此程序也可以不需要空格一直写下去,但这样的程序会是谁都看不懂的"很有难度"的程序,请看以下例子:

if(x==0) {a=b=c=d=MAX; x++;}

这样写,也许会节省空间,但不仅别人,编程的本人也会很难看懂。程序要写得容易看懂!

if(x == 0)
{
  a = b = c = d = MAX;
  x++;
}

这样写,看起来不很清楚吗?程序要有确切的空格才容易看得懂。

3. 统一使用大括号和切断方式

每个程序员使用大括号({})和改行的方式都有自己的习惯,这样,把程序移交给别人继续做的时候,会出现混乱。比如象以下例子:

int main()
{
  int x = 1;
  int y = 10;
  while(x y ){
    printf("Value of x is %d\n", x);
   x++;
  }
}

有些程序员会这样写大括号:

int main()
{
  int x = 1;
  int y = 10;
  while(x y )
  {
    printf("Value of x is %d\n", x);
    x++;
  }
}

笔者是喜欢第二种方式。因为一段语句的开始和结束很明显。我们不能要求每个程序员都用某一种方式来编程,但一个程序里一定要统一。还有,看别人编的程序时要想到他人编程的习惯也许与你不同。

4. 不乱用if语句

有些人很喜欢用“if”语句,如下:

if(a == 0)
{
  a++;
  return(a);
}

if(a == 1)
{
  a += 5;
  return(a);
}

if(a == 2)
{
  a += 10;
  return(a);
}

if(a == 3)
{
  a += 20;
  return(a);
}

if(a == 4)
  exit(1);

有没有比这更好的办法呢?else if语句?不是。好的方法是用“switch-case”语句来写简便的程序:

switch(a)
{
  case 0: a++;
    return(a);

  case 1: a += 5;
    return(a);

  case 2: a += 10;
    return(a);

  case 3: a += 20;
    return(a);

  default: exit(1);
}

如果没有与a一致的值,会执行default里定义的作业,上面的例子是要执行结束。

5. 不乱用程序切断(Block)

很多人经常乱用程序切断。使用三个以上的切断是比较难以看懂的程序。请看下面例子:

int a = 10;
int b = 20;
int c = 30;
int d = 40;

if(a == 10)
{
  a = a + d;
  if(b == 20)
  {
    b = b + a;
    if(c != b)
    {
      c = c + 1;
      if(d > (a + b))
        printf("Made it all the way to the bottom!\n");
    }
  }
}

这也许是夸张了,但确实有很多人真的这样做。那如何写得更好一点呢?一种方法是用函数来分写:

void next(int a, int b, int c, int d)
{
  if(c != b)
  {
    c = c + 1;
    if(d > (a + b))
      printf("Made it all the way to the bottom!\n");
  }
}

int main()
{
  int a = 10;
  int b = 20;
  int c = 30;
  int d = 40;

  if(a == 10)
  {
    a = a + d;
    if(b == 20)
    {
      b = b + a;
      next(a, b, c, d);
    }
  }
return(0);
}

要这样写,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top