一些   简写代码   的方法

一:“++”,“--”运算放在判断等语句中直接使用会减少代码长度:
例1:
下面的squeeze(s,c)函数,它删除字符串s中出现是所有字符c:
void squeeze(char s[],int c)
{
    int i,j;
    for(i=j=0;s[i] != '\0';i++)
    {
       if(s[i] != c)
       {
          s[j++] = s[i];
       }
    }
    s[j] = '\0';
}
其中的if语句是由下面的if语句简化而来:
if(s[i] != c)
{
   s[j] = s[i];
   j++;
}
例2:
strcat(s,t)函数是把字符串t连接到字符串s的尾部:
void strcat(char s[],char t[])
{
   int i = 0, j = 0;
   while(s[i] != '\0')
   {
       i++;
   }
   while((s[i++] = t[j++]) != '\0')
   {
      ;
   }
}
while语句中即进行了自增运算,又进行了赋值运算,还进行了判断运算。
二:语句1?语句2:语句3   的应用:
例如下面的循环语句将打印一个数组的n个元素,每行打印10个元素,每列之间用一个空格隔开,每行用一个换行符结束:
for(i=0;i<n;i++)
{
  printf("%6d%c",a[i],(i%10 == 9 || i == n-1)?'\n':' ');
}
三:用宏定义#define:
#define MAX(a,b)  ((a)>(b)?(a):(b));
#define MIN(a,b)  ((a)<(b)?(a):(b));
这样就不用用函数去实现MAX,MIN了,减少了调用函数而占用的cpu,从而减少了程序运行的时间。
四:在 return    中进行运算 , 而不在函数主体中额外加代码,使代码看上去更简单!例子就不用了哈。


你可能感兴趣的:(代码简化)