OberonCore https://forum.oberoncore.ru/ |
|
Кроссплатформенность в (одном) универсальном исходнике https://forum.oberoncore.ru/viewtopic.php?f=27&t=3703 |
Страница 1 из 1 |
Автор: | Евгений Темиргалеев [ Пятница, 02 Декабрь, 2011 15:10 ] |
Заголовок сообщения: | Кроссплатформенность в (одном) универсальном исходнике |
И пример насыщения/раздувания кода при помощи таких "важных" фич, как макросы и пространства имён. Намедни копался в заголовках... Пример определения типа time_t в time.h: Код: #if !defined __time_t_defined && (defined _TIME_H || defined __need_time_t) Снаружи обвязка для оптимизации, чтобы препроцессору меньше колбасить. Дальше обёртка, засовывающая имя в пространство имён std. Это дело придумали не сразу, поэтому потом при определённых условиях имя высовывается обратно в глобальное пространство имён, для обратной совместимости.# define __time_t_defined 1 # include <bits/types.h> __BEGIN_NAMESPACE_STD /* Returned by `time'. */ typedef __time_t time_t; __END_NAMESPACE_STD #if defined __USE_POSIX || defined __USE_MISC || defined __USE_SVID __USING_NAMESPACE_STD(time_t) #endif #endif /* time_t not defined and <time.h> or need time_t. */ #undef __need_time_t Суть (для 32 бит КП/ББ) в одной строчке интерфейсного модуля LinLibc: Код: TYPE time_t = INTEGER; Ради которой нужно ещё зайти в bits/types.h Код: __STD_TYPE __TIME_T_TYPE __time_t; /* Seconds since the Epoch. */ Потом в bits/typesizes.h Код: #define __TIME_T_TYPE __SLONGWORD_TYPE И снова вернуться в bits/types.hКод: #define __SLONGWORD_TYPE long int Вот так, наверное, и получаются сотни тысяч строк кода.
|
Автор: | Info21 [ Пятница, 02 Декабрь, 2011 20:32 ] |
Заголовок сообщения: | Re: Кроссплатформенность в (одном) универсальном исходнике |
Евгений Темиргалеев писал(а): И пример насыщения/раздувания кода при помощи таких "важных" фич, как макросы и пространства имён. Продолжающийся рост объема кода на этом гуано -- и, главное, агрессивная пропаганда -- самое настоящее мракобесие.
|
Автор: | Пётр Кушнир [ Пятница, 02 Декабрь, 2011 20:46 ] |
Заголовок сообщения: | Re: Кроссплатформенность в (одном) универсальном исходнике |
Евгений Темиргалеев писал(а): Вот так, наверное, и получаются сотни тысяч строк кода. И часы компиляции.
|
Автор: | Info21 [ Пятница, 02 Декабрь, 2011 20:55 ] |
Заголовок сообщения: | Re: Кроссплатформенность в (одном) универсальном исходнике |
Пётр Кушнир писал(а): Евгений Темиргалеев писал(а): Вот так, наверное, и получаются сотни тысяч строк кода. И часы компиляции.Как вспомню, как оно протяжно тарахтело диском, так вздрогну. |
Автор: | А.П. [ Суббота, 10 Декабрь, 2011 17:24 ] |
Заголовок сообщения: | Re: Кроссплатформенность в (одном) универсальном исходнике |
Курирую подготовку магистрантов для моей конторы в соместном с вузом проекте. Несколько человек (из начинающих программеров) захотели пройти мой "курс молодого бойца" на КП/ББ, чтобы потом перейти на "базовый" для конторы язык С/С++, применяемый для разного рода видеообработки. На КП/ББ мы научились читать картинку из файла *.bmp (модуль Files от Info21) в двумерный массив целого типа, переводить картинку в цветной негатив, в черно-белый вариант, оконтуривать объекты, зеркально отражать и поворачивать, накладывать сетку, масштабировать и "гладить" разными самодельными фильтрами, отрисовывать картинку средствами модуля TPGraphics (тоже от Info21) для просмотра. То есть приобрели ряд обязательных базовых знаний и навыков. Некоторое мелкое неудобство доставила невысокая скорость пототечной отрисовки картинки посредством процедуры PutPixel. И вот пришло время начать переход на "правильный" язык. Взяли в руки тысячестраничное пособие Б.Страуструпа, VSExpress от MS, призвали на подмогу коллегу - знатока C++. До этого я с С/С++ не общался, но слышал неоднократно, что С/С++ - это нечто неудобоваримое. Однако тихий ужас от непосредственного контакта с этим монстром превзошел самые худшие ожидания. Причем коллега лишь усилил негатив, вывалив на головы бедных магистранток и мою седую массу (еще не полную!) сведений, необходимых для решения вышеперечисленных простых задач. А на вопрос отображения картинки, элементарно решаемый модулем TPGraphics, выдал ответ, что это слишком сложно в С/С++ и лучше результаты обработки изображений записывать в файл, который потом просматривать через другие программы. В заключение нескольких консультаций опытный коллега, отец пятерых детей, выразил мне рекомендацию отказаться от затеи научить этих наших девушек программировать... |
Автор: | Валерий Лаптев [ Суббота, 10 Декабрь, 2011 18:14 ] |
Заголовок сообщения: | Re: Кроссплатформенность в (одном) универсальном исходнике |
А.П. писал(а): Курирую подготовку магистрантов для моей конторы в соместном с вузом проекте. Несколько человек (из начинающих программеров) захотели пройти мой "курс молодого бойца" на КП/ББ, чтобы потом перейти на "базовый" для конторы язык С/С++, применяемый для разного рода видеообработки. На КП/ББ мы научились читать картинку из файла *.bmp (модуль Files от Info21) в двумерный массив целого типа, переводить картинку в цветной негатив, в черно-белый вариант, оконтуривать объекты, зеркально отражать и поворачивать, накладывать сетку, масштабировать и "гладить" разными самодельными фильтрами, отрисовывать картинку средствами модуля TPGraphics (тоже от Info21) для просмотра. То есть приобрели ряд обязательных базовых знаний и навыков. Некоторое мелкое неудобство доставила невысокая скорость пототечной отрисовки картинки посредством процедуры PutPixel. И вот пришло время начать переход на "правильный" язык. Взяли в руки тысячестраничное пособие Б.Страуструпа, VSExpress от MS, призвали на подмогу коллегу - знатока C++. До этого я с С/С++ не общался, но слышал неоднократно, что С/С++ - это нечто неудобоваримое. Однако тихий ужас от непосредственного контакта с этим монстром превзошел самые худшие ожидания. Причем коллега лишь усилил негатив, вывалив на головы бедных магистранток и мою седую массу (еще не полную!) сведений, необходимых для решения вышеперечисленных простых задач. А на вопрос отображения картинки, элементарно решаемый модулем TPGraphics, выдал ответ, что это слишком сложно в С/С++ и лучше результаты обработки изображений записывать в файл, который потом просматривать через другие программы. В заключение нескольких консультаций опытный коллега, отец пятерых детей, выразил мне рекомендацию отказаться от затеи научить этих наших девушек программировать... В профессиональных средах С++ графика делается либо с использованием winAPI, либо, что обычно и делается, с помощью сторонних библиотек. Самая известная - OpenGL. Ваш коллега просто этого никогда не делал (очевидно, что сфера его деятельности другая). |
Автор: | Info21 [ Суббота, 10 Декабрь, 2011 20:31 ] |
Заголовок сообщения: | Re: Кроссплатформенность в (одном) универсальном исходнике |
А.П. писал(а): ... слышал неоднократно, что С/С++ - это нечто неудобоваримое. Однако тихий ужас от непосредственного контакта с этим монстром превзошел самые худшие ожидания. :DЗато теперь понятно, откуда несусветное ЧСВ у молчелов, чего-то там освоивших из этого монстра. И почему их переубедить бывает невозможно. А.П. писал(а): мне рекомендацию отказаться от затеи научить этих наших девушек программировать... Да... тут много чего хочется сказать. Но уже говорилось, не буду повторяться.
|
Автор: | ___ [ Вторник, 27 Ноябрь, 2012 20:20 ] |
Заголовок сообщения: | Re: Кроссплатформенность в (одном) универсальном исходнике |
А.П. писал(а): А на вопрос отображения картинки, элементарно решаемый модулем TPGraphics, выдал ответ, что это слишком сложно в С/С++ и лучше результаты обработки изображений записывать в файл, который потом просматривать через другие программы. В заключение нескольких консультаций опытный коллега, отец пятерых детей, выразил мне рекомендацию отказаться от затеи научить этих наших девушек программировать... в сях есть библиотека opencv, в которой есть поддержка и чтения кучи форматов файлов, и простое сохранения, и отображение из программы (через ихний же highgui), и работа с изображением, как с массивом. и много чего еще. конечно, она не такая маленькая, как TPGraphics =) |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |