Örnek kod testi div () ve birleşik bölme ve mod. Bunları gcc -O3 ile derledim, derleyicinin her şeyi optimize etmesini durdurmak için doNothing çağrısını eklemem gerekiyordu (bölme + mod çözümü için çıktı 0 olurdu).
Bir tuz tanesi ile alın:
#include <stdio.h>
#include <sys/time.h>
#include <stdlib.h>
extern doNothing(int,int); // Empty function in another compilation unit
int main() {
int i;
struct timeval timeval;
struct timeval timeval2;
div_t result;
gettimeofday(&timeval,NULL);
for (i = 0; i < 1000; ++i) {
result = div(i,3);
doNothing(result.quot,result.rem);
}
gettimeofday(&timeval2,NULL);
printf("%d",timeval2.tv_usec - timeval.tv_usec);
}
Çıkışlar: 150
#include <stdio.h>
#include <sys/time.h>
#include <stdlib.h>
extern doNothing(int,int); // Empty function in another compilation unit
int main() {
int i;
struct timeval timeval;
struct timeval timeval2;
int dividend;
int rem;
gettimeofday(&timeval,NULL);
for (i = 0; i < 1000; ++i) {
dividend = i / 3;
rem = i % 3;
doNothing(dividend,rem);
}
gettimeofday(&timeval2,NULL);
printf("%d",timeval2.tv_usec - timeval.tv_usec);
}
Çıkışlar: 25
double
(son öğeniz) ile uğraşmanın bana kötü bir fikir gibi göründüğünü, sıraya girmeyen sayılarla karşılaşacaksınız ve performans açısından size mal olabilir ve yürütülebilir boyut (belirli gömülü sistemlerde benim için her zaman bir sorundu).