Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - tecno46

#1
Gracias por las respuestas.

Entiendo que para usar una función primero hay que declararla ¿verdad? antes que sea utilizada (por lo menos el prototipo de esta) pues bien, eso no ocurre en este caso, porque el archivo funciones.h incluido por main NO CONTIENE LA DECLARACIÓN DE LA FUNCIÓN FLUSH_IN() ¡tampoco su implementación! y aún así el programa compila y se ejecuta correctamente.

De alguna forma que no entiendo el compilador enlaza main y flush_in(), aún sin necesidad de haber sido explícitamente declarada antes de usarla.
#2
Hola amigos.
Estoy aprendiendo C y estaba repasando en mi libro de texto el uso de los archivos header o cabecera. Yo me hice un ejercicio compuesto de 4 archivos, que son los siguientes..


  • main.c
  • funciones.c
  • funciones.h
  • global.h

main.c

#include "global.h"
#include "funciones.h"

int main(int argc, char** argv) {
    int i;
    char a, b, c;
    for (i = 1; i < 3; ++i) {
        printf("Introduzca primer caracter: ");
        scanf("%c", &a);
        printf("Introduzca segundo caracter: ");
        flush_in();
        scanf("%c", &b);
        printf("Introduzca tercer caracter: ");
        flush_in();
        scanf("%c", &c);
        printf("Los valores son: %c, %c, %c \n", a, b, c);
        flush_in();
    }
    return (EXIT_SUCCESS);
}



funciones.c

#include "funciones.h"

/* Limpia buffer de entrada */
void flush_in(void) {
    int ch;
    while ((ch = fgetc(stdin)) != EOF && ch != '\n') {}
}



funciones.h

#ifndef YA_INCLUIDOS_FUNCIONES_H
#define YA_INCLUIDOS_FUNCIONES_H

#include "global.h"

#endif /* YA_INCLUIDOS_FUNCIONES_H */



global.h

#ifndef GLOBAL_H
#define GLOBAL_H

#include <stdio.h>
#include <stdlib.h>

#endif /* GLOBAL_H */



Bien, lo que yo no entiendo es ¿cómo puede el compilador hallar la función flush_in en main.c si el header (funciones.h) ni siquiera exporta el prototipo?

Pido disculpas si la pregunta es muy noob, pero yo no la sé :D ...