-
- Я ни чего не понял. Может быть вы издеваитесь? - stub(24.04.2013 14:54, )
- нет не издеваюсь, не имею такой привычки. Что не ясно? С одним высказыванием согласен с другим нет. И код привел("чтоб 2 раза не вставать"(С) :-), как extern не переопределять - abivan(24.04.2013 15:43)
- Не понятно зачем все это нужно. Заголовочный файл нужен для описания интерфейса между модулями. Зачем в нем определять переменные (с выделением памяти)? Вы не включите такой хидер более чем в один модуль (компилятор будет ругаться). - stub(24.04.2013 16:00, )
- Палыч написал как это работает - abivan(24.04.2013 16:13)
- Ну тогда, имхо это есть способ высасывания проблем из пальца с последующим героическим их решением. Впрочем, таким способом существуют множество контор и множество инженеров зарабатывают себе на хлеб, не видя в этом ничего зазорного. - stub(24.04.2013 16:32, )
- А вот тут я ничего не понял. У кого проблемы? У меня нет, все давно решено и отлажено. - abivan(24.04.2013 16:43)
- Я имел ввиду глобальную тенденцию к неоправданному усложнению вещей и понятий. Ваш способ лично мне кажется именно этим. Не проще ли просто повторить short Bla; в main.c не вводя никаких новых сущностей. Читается же просто легче. - stub(24.04.2013 17:06, )
- Эта сущность досталась мне от моего учителя с IBM PC AT 286. Этот подход позволяет соблюсти принцип модульности. Если сторонний чел пишет программный модуль то он передает 2 файла .c и .h достаточно один подключить в проект а второй вписать в abivan(86 знак., 24.04.2013 17:23 - 17:25)
- Я так понимаю, что этот изврат только чтобы не определять одну переменную 2 раза: в .h с extern и в .c без. Или нет(С)? - Andreas(24.04.2013 18:26)
- Абсолютно верно - "экономия на спичках" - Палыч(24.04.2013 18:38)
- Бывает реально нужно. Когда есть большой массив констант, и каждый элемент его должен иметь осмысленное имя, то приходится иметь и собственно сам массив, и кучу дифайнов(или, что более кошерно, длинный enum), поясняющих чему равно в массиве каждое Юра(372 знак., 25.04.2013 11:59, )
- Бывает, что структура описана в одном месте, а объявлена и инициализирована константами в совершенно другом. Вы примерно это имели в виду? Тогда я не понял нифига, можно пример? - Andreas(25.04.2013 12:13)
- Вот "канонический" источник: "X Macros" -> - SciFi(25.04.2013 12:07, ссылка)
- Бывает реально нужно. Когда есть большой массив констант, и каждый элемент его должен иметь осмысленное имя, то приходится иметь и собственно сам массив, и кучу дифайнов(или, что более кошерно, длинный enum), поясняющих чему равно в массиве каждое Юра(372 знак., 25.04.2013 11:59, )
- Абсолютно верно - "экономия на спичках" - Палыч(24.04.2013 18:38)
- Я так понимаю, что этот изврат только чтобы не определять одну переменную 2 раза: в .h с extern и в .c без. Или нет(С)? - Andreas(24.04.2013 18:26)
- Эта сущность досталась мне от моего учителя с IBM PC AT 286. Этот подход позволяет соблюсти принцип модульности. Если сторонний чел пишет программный модуль то он передает 2 файла .c и .h достаточно один подключить в проект а второй вписать в abivan(86 знак., 24.04.2013 17:23 - 17:25)
- Я имел ввиду глобальную тенденцию к неоправданному усложнению вещей и понятий. Ваш способ лично мне кажется именно этим. Не проще ли просто повторить short Bla; в main.c не вводя никаких новых сущностей. Читается же просто легче. - stub(24.04.2013 17:06, )
- А вот тут я ничего не понял. У кого проблемы? У меня нет, все давно решено и отлажено. - abivan(24.04.2013 16:43)
- Ну тогда, имхо это есть способ высасывания проблем из пальца с последующим героическим их решением. Впрочем, таким способом существуют множество контор и множество инженеров зарабатывают себе на хлеб, не видя в этом ничего зазорного. - stub(24.04.2013 16:32, )
- Палыч написал как это работает - abivan(24.04.2013 16:13)
- Не понятно зачем все это нужно. Заголовочный файл нужен для описания интерфейса между модулями. Зачем в нем определять переменные (с выделением памяти)? Вы не включите такой хидер более чем в один модуль (компилятор будет ругаться). - stub(24.04.2013 16:00, )
- нет не издеваюсь, не имею такой привычки. Что не ясно? С одним высказыванием согласен с другим нет. И код привел("чтоб 2 раза не вставать"(С) :-), как extern не переопределять - abivan(24.04.2013 15:43)
- Я ни чего не понял. Может быть вы издеваитесь? - stub(24.04.2013 14:54, )