¿Hay una manera de conocer y de salida del tamaño de la pila sea necesario por una función en tiempo de compilación en C? Esto es lo que me gustaría saber:Comprobación del desgaste de la pila en tiempo de compilación
Tomemos alguna función:
void foo(int a) {
char c[5];
char * s;
//do something
return;
}
Al compilar esta función, me gustaría saber cuánto espacio de pila consumirá Whent que se llama. Esto podría ser útil para detectar la declaración en la pila de una estructura que oculta un gran buffer.
Busco algo que imprimir algo como esto:
archivo foo.c: Función uso de pila foo es n
bytes
¿Hay una manera de no mirar a la asamblea generada saber que ? ¿O un límite que se puede establecer para el compilador?
Actualización: No estoy tratando de evitar el tiempo de ejecución de desbordamiento de pila para un proceso dado, estoy buscando una manera de encontrar antes de tiempo de ejecución, si un uso de pila función, según lo determinado por el compilador, está disponible como una salida del proceso de compilación.
Digámoslo de otra manera: ¿es posible conocer el tamaño de todos los objetos local a una función? Creo que la optimización del compilador no será mi amiga, porque algunas variables desaparecerán, pero un límite superior está bien.
En caso de que se lo pregunte, escribí el carácter secreto '}' –
La pregunta no me parece clara. Creo que si se escribe más sobre por qué quiere saber por qué esto y comprobar el desmontaje o ejecutable (que es la forma más fácil de comprobar la salida del compilador) no es aceptable, tal vez alguien podría encontrar alguna solución fácil? – Suma