Ayuda con un proyecto
Hola tengo un pequeño problemita, no soy bueno en C y necesito presentar un proyecto, yo estoy haciendo, pero no me sale casi nada, me gustaria saber si alguien me puede ayudar a hacer esto... espero no lo tomen mal, yo tambien estoy intentando hacer, pero nada me funciona, solo puedo leer el archivo, y extraer algunos datos.. por favor ayudenme..
Construir un programa en lenguaje C que analice cualquier código escrito en este mismo lenguaje y arroje la siguiente información en un archivo de resultados:
Variables globales
o Listado
o Cantidad de memoria que ocupan las variables globales
Funciones (incluir también la función especial main)
o Con su tipo de retorno y correspondiente lista de parámetros
o Listado de variables locales
o Cantidad de memoria que ocupa cada llamada a dicha función considerando las variables locales que contiene
o Cantidad de bloques de código presentes
o Cantidad de líneas de código que contiene
o Indicar si es recursiva o no
Considerar el siguiente fragmento de código como un ejemplo simple:
#include <stdio.h>
#define EL_TAMA 100
struct a {
int j;
int k;
} s;
struct b {
int l;
struct a m;
} r;
char k;
int f(char l);
char *nombre(int pos);
void lista(void);
int main(int argc, char **argv) {
struct a vec[5];
f(a);
printf(%sn, nombre(2));
lista();
}
int f(char l) {
struct b sb[2];
if (l == a) {
f(l + 1);
}
return l + 1;
}
char *nombre(int pos) {
return hola;
}
void lista(void) {
int o;
char h[EL_TAMA];
strcpy(h, ALOLC);
}
El archivo de resultados debe contener la siguiente estructura:
<codigo>
<globales cantidad=3 mem=11>
<variable nombre=s tipo=struct a vector=no mem=4/>
<variable nombre=r tipo=struct b vector=no mem=6/>
<variable nombre=k tipo=char vector=no/ mem=1>
</globales>
<funciones cantidad=4>
<funcion nombre=main retorno=int mem= recursiva=no mem=26>
<parametro nombre=argc tipo=int vector=no mem=2/>
<parametro nombre=argv tipo=char** vector=no mem=4/>
<variable nombre=a tipo=struct a vector=si mem=20/>
</funcion>
<funcion nombre=f retorno=int mem=13 recursiva=si>
<parametro nombre=l tipo=char vector=no mem=1/>
<variable nombre=sb tipo=struct b vector=si mem=12/>
</funcion>
<funcion nombre=nombre retorno=char* mem=2 recursiva=no>
<parametro nombre=pos tipo=int mem=2/>
</funcion>
<funcion nombre=lista retorno=void mem=102 recursiva=no>
<variable nombre=o tipo=int vector=no mem=2/>
<variable nombre=h tipo=char vector=si mem=100/>
</funcion>
</funciones>
</codigo>
Construir un programa en lenguaje C que analice cualquier código escrito en este mismo lenguaje y arroje la siguiente información en un archivo de resultados:
Variables globales
o Listado
o Cantidad de memoria que ocupan las variables globales
Funciones (incluir también la función especial main)
o Con su tipo de retorno y correspondiente lista de parámetros
o Listado de variables locales
o Cantidad de memoria que ocupa cada llamada a dicha función considerando las variables locales que contiene
o Cantidad de bloques de código presentes
o Cantidad de líneas de código que contiene
o Indicar si es recursiva o no
Considerar el siguiente fragmento de código como un ejemplo simple:
#include <stdio.h>
#define EL_TAMA 100
struct a {
int j;
int k;
} s;
struct b {
int l;
struct a m;
} r;
char k;
int f(char l);
char *nombre(int pos);
void lista(void);
int main(int argc, char **argv) {
struct a vec[5];
f(a);
printf(%sn, nombre(2));
lista();
}
int f(char l) {
struct b sb[2];
if (l == a) {
f(l + 1);
}
return l + 1;
}
char *nombre(int pos) {
return hola;
}
void lista(void) {
int o;
char h[EL_TAMA];
strcpy(h, ALOLC);
}
El archivo de resultados debe contener la siguiente estructura:
<codigo>
<globales cantidad=3 mem=11>
<variable nombre=s tipo=struct a vector=no mem=4/>
<variable nombre=r tipo=struct b vector=no mem=6/>
<variable nombre=k tipo=char vector=no/ mem=1>
</globales>
<funciones cantidad=4>
<funcion nombre=main retorno=int mem= recursiva=no mem=26>
<parametro nombre=argc tipo=int vector=no mem=2/>
<parametro nombre=argv tipo=char** vector=no mem=4/>
<variable nombre=a tipo=struct a vector=si mem=20/>
</funcion>
<funcion nombre=f retorno=int mem=13 recursiva=si>
<parametro nombre=l tipo=char vector=no mem=1/>
<variable nombre=sb tipo=struct b vector=si mem=12/>
</funcion>
<funcion nombre=nombre retorno=char* mem=2 recursiva=no>
<parametro nombre=pos tipo=int mem=2/>
</funcion>
<funcion nombre=lista retorno=void mem=102 recursiva=no>
<variable nombre=o tipo=int vector=no mem=2/>
<variable nombre=h tipo=char vector=si mem=100/>
</funcion>
</funciones>
</codigo>
