C/C++の宿題を片付けます 74代目
■ このスレッドは過去ログ倉庫に格納されています
0146(^-^) ◆MONSOON/qo
2006/09/27(水) 18:00:51マクロの方が4倍以上速い
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#define N 1000
#define reverse_macro1(s) l=strlen(s)-1;for(n=0;n<l/2;n++){temp=s[n];s[n]=s[l-n];s[l-n]=temp;}
void reverse(char *s){
int l = 0, r = strlen(s) - 1;
char t;
while(l < r){
t = s[l];s[l] = s[r];s[r] = t;
++l;--r;}}
main(){
char a[N+1];
register char temp;
int n,l;
clock_t s=0,t=0;
for(n=0;n<N;n++)a[n]=rand()%75+48;a[N]='\0';
s=clock();for(n=0;n<1000000;n++)reverse_macro(a);s=clock()-s;
t=clock();for(n=0;n<1000000;n++)reverse(a);t=clock()-t;
printf("macro no speed = %d \n135 no code = %d\n",s,t);}
■ このスレッドは過去ログ倉庫に格納されています