История изменений
Исправление
pr849,
(текущая версия)
:
Потому что это слишком низкоуровневый язык. И паттерны у него свои, низкоуровневые и вовсю использующие небезопасные вещи типа сишных макросов и void*. Даже при том, что нынешний C (или как минимум GCC) умеет static inline функции, в тех сорцах, что я видел, всё равно используются #define. А высокоуровневые парадигмы типа ООП, ФП ему чужды, и если их на нём эмулировать, что выглядит крайне противоестественно, ужасно и опять же небезопасно.
Пример сразу множества дикостей в одной строке, файл expat.h:
#define XML_GetUserData(parser) (*(void **)(parser))
Помню пример и почудовищней порядка так на два, но я вам его не покажу. :)
Исправление
pr849,
:
Потому что это слишком низкоуровневый язык. И паттерны у него свои, низкоуровневые и вовсю использующие небезопасные вещи типа сишных макросов и void*. Даже при том, что нынешний C (или как минимум GCC) умеет static inline функции, в тех сорцах, что я видел, всё равно используются #define. А высокоуровневые парадигмы типа ООП, ФП ему чужды, и если их на нём эмулировать, что выглядит крайне противоестественно, ужасно и опять же небезопасно.
Пример сразу множества дикостей в одной строке, файл expat.h:
#define XML_GetUserData(parser) (*(void **)(parser))
Исправление
pr849,
:
Потому что это слишком низкоуровневый язык. И паттерны у него свои, низкоуровневые и вовсю использующие небезопасные вещи типа сишных макросов и void*. Даже при том, что нынешний C (или как минимум GCC) умеет static inline функции, в тех сорцах, что я видел, всё равно используются #define. А высокоуровневые парадигмы типа ООП, ФП ему чужды, и если их на нём эмулировать, что выглядит крайне противоестественно, ужасно и опять же небезопасно.
Исходная версия
pr849,
:
Потому что это слишком низкоуровневый язык. И паттерны у него свои, низкоуровневые и вовсю использующие небезопасные вещи сишных макросов и void*. Даже при том, что нынешний C (или как минимум GCC) умеет static inline функции, в тех сорцах, что я видел, всё равно используются #define. А высокоуровневые парадигмы типа ООП, ФП ему чужды, и если их на нём эмулировать, что выглядит крайне противоестественно, ужасно и опять же небезопасно.