Soy C novato y solo estaba tratando de escribir una aplicación de consola con Code :: Blocks. Aquí está la (simplificado) Código: main.c:¿Cómo prevenir múltiples definiciones en C?
#include <stdio.h>
#include <stdlib.h>
#include "test.c" // include not necessary for error in Code::Blocks
int main()
{
//t = test(); // calling of method also not necessary
return 0;
}
TEST.C:
void test() {}
Cuando trato de instalar este programa, da los siguientes errores:
*path*\test.c|1|multiple definition of `_ test'| obj\Debug\main.o:*path*\test.c|1|first defined here|
No hay forma de que multiplique la definición de prueba (aunque no sé de dónde viene el guión bajo) y parece muy poco probable que la definición se incluya de alguna manera dos veces. Este es todo el código que hay.
He descartado que este error se deba a algún conflicto de nombres con otras funciones o archivos que se llaman test o test.c. Tenga en cuenta que la definición múltiple y la primera están en la misma línea en el mismo archivo.
¿Alguien sabe qué está causando esto y qué puedo hacer al respecto? ¡Gracias!
Los nombres como _TEST.H_ que comienzan con un guión bajo y una letra mayúscula son ilegales en el código de usuario C; están reservados para los implementadores del compilador. –
Debe proporcionar información sobre los parámetros para probar() en el archivo de encabezado, es decir, prueba de vacío(); -> prueba de vacío (vacío); – aib
Acabo de tomar la interfaz sugerida en la pregunta, pero tiene razón: actualizo mi respuesta. – mouviciel