Profiler.C
Código PHP:
#include <time.h>
struct intervalo
{
clock_t comienzo;
clock_t final;
double tiempo;
char identificador[12];
};
static clock_t comienzo;
static int intervalosEstablecidos = 0;
extern struct intervalo intervalos[7];
extern void comenzar()
{
comienzo = clock();
}
extern double finalizar()
{
clock_t final;
double tiempoEjecucion;
final = clock();
tiempoEjecucion = (double)(final - comienzo) / (double)CLOCKS_PER_SEC;
return tiempoEjecucion;
}
extern int comenzarIntervalo(char ident[])
{
struct intervalo nuevoIntervalo;
nuevoIntervalo.comienzo = clock();
nuevoIntervalo.identificador = ident; //'Incompatible types in assigment'
intervalos[intervalosEstablecidos] = nuevoIntervalo;
intervalosEstablecidos++;
return intervalosEstablecidos;
}
extern void finalizarIntervalo(int indiceIntervalo)
{
intervalos[indiceIntervalo].final = clock();
intervalos[indiceIntervalo].tiempo = (double)(intervalos[indiceIntervalo].final - intervalos[indiceIntervalo].comienzo) / (double) CLOCKS_PER_SEC;
}
Código PHP:
extern void comenzar();
extern double finalizar();
extern struct intervalo intervalos[];
extern int comenzarIntervalo(char ident[]);
extern void finalizarIntervalo(int indiceIntervalo);
Código PHP:
#include <stdio.h>
#include <stdlib.h>
#include "libMath.h"
#include "Profiler.h"
int main()
{
int i, indice;
intervalo miIntervalo; //'Intervalo undeclared'
comenzar();
i = 0;
indice = comenzarIntervalo(NULL);
while ( i <= 50000)
{
factorial(i);
if (i > 25000)
{
finalizarIntervalo(indice);
}
i++;
}
printf("Tiempo de ejecucion: %.2f segundos.\n", finalizar());
printf("Tiempo de ejecucion de intervalo: %.2f segundos.\n", intervalos[indice].tiempo); //'Invalid use of undefined type struct intervalo'
system("PAUSE");
return 0;
}
No sé bien en donde puede estar el error. Si estoy declarando la estructura intervalo en el header y definiendola en el código fuente, ¿Por qué no la está reconociendo el archivo principal?. Espero que puedan ayudarme con esto. Gracias de antemano, por al menos haber leído este post.
Saludos a todos!.