LINUX.ORG.RU

[C] Помогите инициализировать структуру

 


0

1

есть getopt.h в нём структура

struct option
{
  const char *name;
  int has_arg;
  int *flag;
  int val;
};

мой глобальный хедер global.h

struct option long_opt;// тоесть я говорю всем файликам программы "вы долждны знать такую структуру long_opt"

а инициализировать значениями я хочу в другом файле options.c !так мне удобнее! не инициализировать в global.h хотел бы что-то типа:

option long_opt [] = {
            { "aliases",        1, 0, 'a' },
            { "verbose",        0, 0, 'v' },
            { "extra-verbose",  0, 0, 'w' },
            { 0,                0, 0,  0  }
    };

но компилятор отказывается это воспринимать, но если я сделаю инициализацию в global.h, то всё ок.

        static struct option long_opt[] = {
            { "aliases",        1, 0, 'a' },
            { "verbose",        0, 0, 'v' },
            { "extra-verbose",  0, 0, 'w' },
            { 0,                0, 0,  0  }
    };

спасибо.



Последнее исправление: sadavod (всего исправлений: 1)

/* .h */

struct option {
    const char *name;
    int has_arg;
    int *flag;
    int val;
};

extern struct option long_opt [];
/* .c */

#include "s.h"

struct option long_opt [] = {
    { "aliases",        1, 0, 'a' },
    { "verbose",        0, 0, 'v' },
    { "extra-verbose",  0, 0, 'w' },
    { 0,                0, 0,  0  }
};
quasimoto ★★★★
()

static struct option

Вот и весь секрет.

thesis ★★★★★
()

спасибо Вам большое!

sadavod
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.