Объявления для перечислений и структур

Я написал несколько файлов: main.c, functions.c, functions2.c и header.h. Некоторые функции в functions.c и functions2 используют некоторые перечисления и структуры.

Где я должен разместить свои перечисления и структуры? Как написать объявления для них в functions.c и functions2.c? Мои функции (из разных файлов) должны их видеть.

Например, я написал объявления такой функции в header.h:

int func(void);
void func2(int);

Но я не знаю, как это писать для перечислений и структур.

С уважением

2 ответа

Решение

Пример для functions.c:

#include "header.h"

int func(void)
{
 ...
}

void func2(int)
{

}

Пример для header.h:

#ifndef HEADER_H
#define HEADER_H

int func(void);
void func2(int);

enum eMyEnum
{
 eZero = 0,
 eOne,  
 eTwo
};

struct sMyStruct
{ 
 int i;
 float f;
};

#endif

Декларирующие структуры:

typedef struct <optional struct name>
{
   int    member1;
   char*  member2;

} <struct type name>;

Поместите все элементы, которые вы хотите в структуре в формате выше, с любым именем, которое вы хотите. Тогда вы используете:

<struct type name> my_struct;

Объявить экземпляры структуры.

Объявление перечислений:

typedef enum
{
    value_name,
    another_value_name,
    yet_another_value_name

} <enum type name>;

Поместите все значения в перечисление, как указано выше, с любым именем. Тогда вы используете:

<enum type name> my_enum;

Чтобы объявить экземпляры перечисления.

Другие вопросы по тегам