Enum em c [RESOLVIDO]

1. Enum em c [RESOLVIDO]

Bell Coutinho
BellCoutinho

(usa Arch Linux)

Enviado em 16/11/2018 - 12:01h

Pessoal, eu estou usando dois arquivos, o database.c e database.h

no database.h tem:

typedef enum _type_room TypeRoom;


no database.c tem:

enum _type_room {
SIMPLE_EXECUTIVE = 1,
DOUBLE_EXECUTIVE,
TRIPLO_EXECUTIVE,
SIMPLE_LUXURY,
DOUBLE_LUXURY,
TRIPLE_LUXURY,
PRESIDENTIAL
};
void foo(void)
{
enum _type_room a = DOUBLE_EXECUTIVE;
printf("ok\n");
printf("%d\n", a);
}


a função foo funcional normalmente, agora quando eu chamo no main, que está no arquivo teste.c:

#include "database.h"
int main(void) {
TypeRoom b = DOUBLE_EXECUTIVE;
printf("%d\n", b);
foo();
return 0;
}


aparece a seguinte mensagem:
note: each undeclared identifier is reported only once for each function it appears in
teste.c:4:14: error: storage size of ‘a’ isn’t known
TypeRoom b = DOUBLE_EXECUTIVE;

Como faço para colocar e declaração do enum no database.h e sua implementação no database.c para poder usar no meu main em outro arquivo.

Desde já obrigado.


  


2. MELHOR RESPOSTA

Paulo
paulo1205

(usa Ubuntu)

Enviado em 16/11/2018 - 12:20h

Mova a definição do enum para o arquivo de cabeçalho (.h).

3. Re: Enum em c [RESOLVIDO]

Bell Coutinho
BellCoutinho

(usa Arch Linux)

Enviado em 16/11/2018 - 13:02h

paulo1205 escreveu:

Mova a definição do enum para o arquivo de cabeçalho (.h).


Obrigado ^^






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts