struct _directorio{
Cadena nomDir;
_directorio *ptrIZQ;
_directorio *ptrDER;
_archivo *ptrArchivo;
};
typedef _directorio *Directorio;
struct _sistema{
_directorio *ptrDirectorio;
};
typedef _sistema *Sistema;
typedef struct _archivo{
Cadena Contenido;
Cadena Atributos;
Cadena nombreArchivo;
_archivo *siguiente;
};
typedef _archivo *Archivo;
struct _listaArchivos{
Cadena nomArchivo;
_listaArchivos *Siguiente;
};
typedef _listaArchivos *ListaArchivos;
Cada una de estas estructuras son la estructura de varios headers en los que tengo definidas funciones varias, con el proposito de crear algo similiar a un Filesystem... o sea tiro comando parametro.. y manipulo el filesystem, creo, elimino y modifico directorios, archivos, etc....
Quiero saber donde esta mi error al definir todos ellos, porque me tira errores de tipo:
"ISO C++ forbids declaration of `archivo' with no type" (en el header de directorio)
o tambien "error: `Archivo' does not name a type" (en el header de listaArchivo)
... Supongo que podria ser un problema de definicion, o de incluir que header en que header... Pero no me doy cuenta. Si no me doy a entender bien haganmelo saber.
Desde ya muchas gracias.-
creo que primero debes crear el tipo de dato _directorio y despues hacer referencia al dato creado:
typedef struct _directorio _Directorio
typedef _Directorio *DPTR
En la primera estructura intenta algo asi:
typedef struct _directorio{
Cadena nomDir;
_directorio *ptrIZQ;
_directorio *ptrDER;
_archivo *ptrArchivo;
}_Directorio;
para la segunda estructura:
struct _sistema{
_directorio *ptrDirectorio;
};
typedef struct _sistema *Sistema;
cuando utlices typedef para crear el tipo de estructura agrega la palabra reservada struct.
typedef struct _archivo{
Cadena Contenido;
Cadena Atributos;
Cadena nombreArchivo;
_archivo *siguiente;
}_Archivo;
typedef _Archivo *Archivo;
struct _listaArchivos{
Cadena nomArchivo;
_listaArchivos *Siguiente;
};
typedef struct _listaArchivos *ListaArchivos;
creo que cuando usas typedef solamente te refieres al tag de la estructura pero no al tipo de dato en si.
Si estoy mal favor de corregir! :¬¬