提高C语言效率笔记
不要问为什么,就这样做就对了,不管你信不信,反正我是信了。计算机程序中最大的矛盾是空间和时间的矛盾,视情况牺牲空间或者时间,来达到想要的结果。
- 1
for(;;)
{
A=array[t++];
}
改成:
p=array;
for(;;)
{
a=*(p++);
}
- 2
int I,J;
I=257/8;
J=456%32;
改成:
int I,J;
I=257>>3;
J=456-(456>>5<<5);
- 3
a=a+b;
改成:
a+=b;
- 4
if(x==1)
改成
if(1==x)
- 5
a=a%8;
改成
a=a&7;
a=a*9;
改成
a=(a<<3)+a;
- 6
#define LEN 32
char string1[LEN];
memset(string1,0,LEN); //初始化工作string1中全部初始化0
strcpy(string1,"This is a example!");
改成
const char string2[LEN]="This is a example!";
char *cp;
cp=string2;
使用的时候用指针操作
- 7
long factorial(int i)
{
if(i==0)
return 1;
else
return i*factorial(i-1);
}
改成
static long factorial_table[]=
{
1,1,2,6,24,120,720/*etc*/};
}
long factorial(int i)
{
return factorial_table[i];
}
- 8
int i,j,k,m
m=i/j/k;
改成
int i,j,k,m
m=i/(j*k);
- 9
struct
{
char a[5];
long k;
double x;
}baz;
改成
struct
{
double x; //8字节长度
long k; //4字节
char a[5]; //5字节
char pad[7]; //7字节 字节填充对齐
}baz;
- 10
for(i=0;i<100;i++)
{
do_stuff(i);
}
改成
for(i=0;i<10)
{
do_stuff(i);i++;
do_stuff(i);i++;
do_stuff(i);i++;
do_stuff(i);i++;
do_stuff(i);i++;
do_stuff(i);i++;
do_stuff(i);i++;
do_stuff(i);i++;
do_stuff(i);i++;
do_stuff(i);i++;
}
- 11
while(1);
改成
for(;;);