PDA

Ver la versión completa : Tipos definidos y programacion modular



^K3``N30
18-11-2010, 21:57
Tengo una pequeña duda en al programacion modular. Pongamos por ejemplo este codigo:

main.cpp


#include "prueba1.h"

int main(){
funcion1();
}


prueba1.h


#pragma once
#include "prueba2.h"


typedef char tipo;

void funcion1();


prueba1.cpp


#include "prueba1.h"

void funcion1(){
funcion2();
}


prueba2.h


#pragma once
#include "prueba1.h"

void funcion2();


prueba2.cpp


#include "prueba2.h"

void funcion2(){
tipo a;
}


Al compilar me dice que tipo no esta definido. No se como se propaga los tipos definidos entre modulos. Creo que definiendolo en cada modulo se soluciopna, pero entonces no me vale de nada tener una structura grande en un modulo esclusivo para ella, si tengo que definirla en cada modulo.


PD: Se me olvido decir que es en C, pero es obvio.

^K3``N30
19-11-2010, 12:56
Ya encontre el problema. No se pueden llamar mutuamente 2 archios.

Ej. prueba1

#include "prueba2.h"

prueba 2

#include "prueba1.h"

esto no esta permito, lo solucioné crendo un tercer.h donde estan los tipos compartidos.

Marchi
22-11-2010, 18:03
Una alternativa sería hacer que los include estén dentro de un #ifdef.

Ej. prueba1.h

#define PRUEBA1 prueba1.h
#ifndef PRUEBA2
#include prueba2.h
#endif

Ej. prueba2.h

#define PRUEBA2 prueba2.h
#ifndef PRUEBA1
#include prueba1.h
#endif

Saludos