usar programacion programa otro incluir headers encabezado dev crear como cabecera archivos archivo c header c-header

programacion - incluir header en c



Creando su propio archivo de encabezado en C (4)

¿Alguien puede explicar cómo crear un archivo de cabecera en C con un ejemplo simple de principio a fin?


los archivos de encabezado contienen prototipos para funciones que usted define en un archivo .c o .cpp / .cxx (dependiendo de si está usando c o c ++). Desea colocar # ifndef / # define alrededor de su código .h de modo que si incluye el mismo .h dos veces en diferentes partes de sus programas, los prototipos solo se incluyen una vez.

client.h

#ifndef CLIENT_H #define CLIENT_H short socketConnect(char *host,unsigned short port,char *sendbuf,char *recievebuf, long rbufsize); #endif /** CLIENT_H */

Luego implementarías .h en un archivo .c como ese:

client.c

#include "client.h" short socketConnect(char *host,unsigned short port,char *sendbuf,char *recievebuf, long rbufsize) { short ret = -1; //some implementation here return ret; }


myfile.h

#ifndef _myfile_h #define _myfile_h void function(); #endif

myfile.c

#include "myfile.h" void function() { }


foo.h

#ifndef FOO_H_ /* Include guard */ #define FOO_H_ int foo(int x); /* An example function declaration */ #endif // FOO_H_

foo.c

#include "foo.h" /* Include the header (not strictly necessary here) */ int foo(int x) /* Function definition */ { return x + 5; }

C Principal

#include <stdio.h> #include "foo.h" /* Include the header here, to obtain the function declaration */ int main(void) { int y = foo(3); /* Use the function here */ printf("%d/n", y); return 0; }

Para compilar usando GCC

gcc -o my_app main.c foo.c


#ifndef MY_HEADER_H # define MY_HEADER_H //put your function headers here #endif

MY_HEADER_H sirve como guardia de doble inclusión.

Para los encabezados de función, solo necesita definir la firma, es decir, sin nombres de parámetros, como este:

int foo(char*);

Si realmente lo desea, también puede incluir el identificador del parámetro, pero no es necesario porque el identificador solo se usaría en el cuerpo de una función (implementación), que en el caso de un encabezado (firma del parámetro), falta.

Esto declara la función foo que acepta un char* y devuelve un int .

En su archivo fuente, tendría:

#include "my_header.h" int foo(char* name) { //do stuff return 0; }