tag name moz images for example description alternative c gcc-warning

c - name - get tags wordpress



Función declarada estática pero nunca definida. (2)

Buena práctica: declare las funciones estáticas en el archivo de origen en el que se definen (proporcione también un prototipo), ya que es el único archivo en el que están visibles.

De esta manera, la función solo es visible para ese archivo, ¡tales problemas de visibilidad pueden reducir el posible conflicto de código! Entonces, simplemente proporcione el prototipo y la definición de la función estática en el archivo .c. No incluya la función estática en el archivo de encabezado; El archivo .h es para consumo externo.

Duplicar: Funciones estáticas en C

Tengo un archivo de encabezado, supongo abc.h, donde tengo la declaración de función como:

static int function1();

He incluido este archivo de encabezado en abc.c y he definido la función y la he usado.

static int function1() { < function definition> }

Después de compilar me sale una advertencia:

warning: function1 declared static but never defined

¿Cómo puedo eliminar la advertencia, sin eliminar la estática. Gracias.


Se puede declarar una función estática en un archivo de encabezado, pero esto causaría que cada archivo de origen que incluyó el archivo de encabezado tenga su propia copia privada de la función, que probablemente no sea la intención.

¿Está seguro de que no ha incluido el archivo abc.h en otros archivos .c?

Debido a que declarar una función como estática, requiere que la función se defina en todos los archivos .c en los que se incluye.