He escrito un programa para estimar el uso de la pila de la siguiente manera He definido una variable de puntero global para caracteres sin signo. He definido una variable local en el programa principal y he tomado la dirección de esta variable que será mi ubicación de pila inicial. En cada subrutina que vaya, definiré mi variable conocida y tomaré la dirección de esta variable. La diferencia entre La primera ubicación de la pila y la nueva ubicación de la pila serán de mi tamaño a partir de las cuales puedo calcular el tamaño máximo de la pila.
unsigned char *startingstacklocation;
unsigned char *endingstacklocation;
unsigned int maxstacksize;
int main()
{
unsinged char mydefinedlocalvariable;
startingstacklocation = &mydefinedlocalvariable;
subroutine1();
}
void subroutine1(void)
{
unsigned char existingvariables[20];
unsigned char mydefinedlocalvariable;
endingstacklocation = &mydefinedlocalvariable;
stacksize = endingstacklocation - startingstacklocation;
if(stacksize > maxstacksize)
{
maxstacksize = stacksize;
}
}
Mi pregunta es ¿la forma correcta de hacerlo?