OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 21 Июль, 2019 01:34

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: Пятница, 02 Декабрь, 2011 15:10 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4489
Откуда: Россия, Орёл
И пример насыщения/раздувания кода при помощи таких "важных" фич, как макросы и пространства имён.

Намедни копался в заголовках... Пример определения типа time_t в time.h:
Код:
#if !defined __time_t_defined && (defined _TIME_H || defined __need_time_t)
# 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
Снаружи обвязка для оптимизации, чтобы препроцессору меньше колбасить. Дальше обёртка, засовывающая имя в пространство имён std. Это дело придумали не сразу, поэтому потом при определённых условиях имя высовывается обратно в глобальное пространство имён, для обратной совместимости.

Суть (для 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
Вот так, наверное, и получаются сотни тысяч строк кода.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 02 Декабрь, 2011 20:32 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8169
Откуда: Троицк, Москва
Евгений Темиргалеев писал(а):
И пример насыщения/раздувания кода при помощи таких "важных" фич, как макросы и пространства имён.
Продолжающийся рост объема кода на этом гуано -- и, главное, агрессивная пропаганда -- самое настоящее мракобесие.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 02 Декабрь, 2011 20:46 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2596
Откуда: Россия, Ярославль
Евгений Темиргалеев писал(а):
Вот так, наверное, и получаются сотни тысяч строк кода.
И часы компиляции.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 02 Декабрь, 2011 20:55 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8169
Откуда: Троицк, Москва
Пётр Кушнир писал(а):
Евгений Темиргалеев писал(а):
Вот так, наверное, и получаются сотни тысяч строк кода.
И часы компиляции.
Да, кстати.

Как вспомню, как оно протяжно тарахтело диском, так вздрогну.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 10 Декабрь, 2011 17:24 

Зарегистрирован: Пятница, 02 Декабрь, 2005 14:35
Сообщения: 190
Откуда: Россия, Томск
Курирую подготовку магистрантов для моей конторы в соместном с вузом проекте. Несколько человек (из начинающих программеров) захотели пройти мой "курс молодого бойца" на КП/ББ, чтобы потом перейти на "базовый" для конторы язык С/С++, применяемый для разного рода видеообработки. На КП/ББ мы научились читать картинку из файла *.bmp (модуль Files от Info21) в двумерный массив целого типа, переводить картинку в цветной негатив, в черно-белый вариант, оконтуривать объекты, зеркально отражать и поворачивать, накладывать сетку, масштабировать и "гладить" разными самодельными фильтрами, отрисовывать картинку средствами модуля TPGraphics (тоже от Info21) для просмотра. То есть приобрели ряд обязательных базовых знаний и навыков. Некоторое мелкое неудобство доставила невысокая скорость пототечной отрисовки картинки посредством процедуры PutPixel.
И вот пришло время начать переход на "правильный" язык. Взяли в руки тысячестраничное пособие Б.Страуструпа, VSExpress от MS, призвали на подмогу коллегу - знатока C++. До этого я с С/С++ не общался, но слышал неоднократно, что С/С++ - это нечто неудобоваримое. Однако тихий ужас от непосредственного контакта с этим монстром превзошел самые худшие ожидания. Причем коллега лишь усилил негатив, вывалив на головы бедных магистранток и мою седую массу (еще не полную!) сведений, необходимых для решения вышеперечисленных простых задач. А на вопрос отображения картинки, элементарно решаемый модулем TPGraphics, выдал ответ, что это слишком сложно в С/С++ и лучше результаты обработки изображений записывать в файл, который потом просматривать через другие программы. В заключение нескольких консультаций опытный коллега, отец пятерых детей, выразил мне рекомендацию отказаться от затеи научить этих наших девушек программировать...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 10 Декабрь, 2011 18:14 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3060
Откуда: Астрахань
А.П. писал(а):
Курирую подготовку магистрантов для моей конторы в соместном с вузом проекте. Несколько человек (из начинающих программеров) захотели пройти мой "курс молодого бойца" на КП/ББ, чтобы потом перейти на "базовый" для конторы язык С/С++, применяемый для разного рода видеообработки. На КП/ББ мы научились читать картинку из файла *.bmp (модуль Files от Info21) в двумерный массив целого типа, переводить картинку в цветной негатив, в черно-белый вариант, оконтуривать объекты, зеркально отражать и поворачивать, накладывать сетку, масштабировать и "гладить" разными самодельными фильтрами, отрисовывать картинку средствами модуля TPGraphics (тоже от Info21) для просмотра. То есть приобрели ряд обязательных базовых знаний и навыков. Некоторое мелкое неудобство доставила невысокая скорость пототечной отрисовки картинки посредством процедуры PutPixel.
И вот пришло время начать переход на "правильный" язык. Взяли в руки тысячестраничное пособие Б.Страуструпа, VSExpress от MS, призвали на подмогу коллегу - знатока C++. До этого я с С/С++ не общался, но слышал неоднократно, что С/С++ - это нечто неудобоваримое. Однако тихий ужас от непосредственного контакта с этим монстром превзошел самые худшие ожидания. Причем коллега лишь усилил негатив, вывалив на головы бедных магистранток и мою седую массу (еще не полную!) сведений, необходимых для решения вышеперечисленных простых задач. А на вопрос отображения картинки, элементарно решаемый модулем TPGraphics, выдал ответ, что это слишком сложно в С/С++ и лучше результаты обработки изображений записывать в файл, который потом просматривать через другие программы. В заключение нескольких консультаций опытный коллега, отец пятерых детей, выразил мне рекомендацию отказаться от затеи научить этих наших девушек программировать...

В профессиональных средах С++ графика делается либо с использованием winAPI, либо, что обычно и делается, с помощью сторонних библиотек. Самая известная - OpenGL. Ваш коллега просто этого никогда не делал (очевидно, что сфера его деятельности другая).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 10 Декабрь, 2011 20:31 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8169
Откуда: Троицк, Москва
А.П. писал(а):
... слышал неоднократно, что С/С++ - это нечто неудобоваримое. Однако тихий ужас от непосредственного контакта с этим монстром превзошел самые худшие ожидания.
:D

Зато теперь понятно, откуда несусветное ЧСВ у молчелов, чего-то там освоивших из этого монстра.
И почему их переубедить бывает невозможно.

А.П. писал(а):
мне рекомендацию отказаться от затеи научить этих наших девушек программировать...
Да... тут много чего хочется сказать. Но уже говорилось, не буду повторяться.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 27 Ноябрь, 2012 20:20 

Зарегистрирован: Четверг, 01 Июнь, 2006 11:14
Сообщения: 240
А.П. писал(а):
А на вопрос отображения картинки, элементарно решаемый модулем TPGraphics, выдал ответ, что это слишком сложно в С/С++ и лучше результаты обработки изображений записывать в файл, который потом просматривать через другие программы. В заключение нескольких консультаций опытный коллега, отец пятерых детей, выразил мне рекомендацию отказаться от затеи научить этих наших девушек программировать...


в сях есть библиотека opencv, в которой есть поддержка и чтения кучи форматов файлов, и простое сохранения, и отображение из программы (через ихний же highgui), и работа с изображением, как с массивом. и много чего еще. конечно, она не такая маленькая, как TPGraphics =)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB