Digamos que tengo 3 archivos separados llamados: main.c , test.c y test.h. ¿Cómo podría “forzar” una función que incluye test.h para definir una función que ya está declarada en test.h , ese archivo test.c puede llamarlo?
Esto es un poco desordenado, así que déjame darte algunos ejemplos de código de lo que quiero decir.
prueba.h :
... #define SOMETHING ... #ifdef SOMETHING inline void test_func(BYTE b); #endif ...
prueba.c :
#include "test.h" void somefunction(void) { ... #ifdef SOMETHING test_func(integer_value); #endif ... }
main.c :
#include "test.h" int main(void) { ... } inline void test_func(BYTE b) { // Do something with b }
En resumen: test.h declaró una función, main.c define esa función y test.c llama a esa función.
es posible? ¿Cómo?
EDITAR:
El usuario declara la función en main.c cuando el comstackdor da un error o algo que no se declara esa función.
En resumen, debería ser posible hacer esto. Por qué ? El archivo que implementa una función no tiene que estar en un archivo de encabezado con el mismo nombre. El enlazador resolverá cualquier problema si hay alguno y se quejará si falta algo. Si el comstackdor se queja, entonces falta un archivo de encabezado o su definición de función de archivo de encabezado no coincide con lo que tiene en el archivo c.