• Как в языке С: 1) реализуется понятие "inline" функция? 2) возможно ли реализовать общее имя функции для разных типов?

    @MaM
    Хах, а ты веселый малый. Вообшем случае inline это совет компилятору заинлайнить функцию, так же есть штуки специфичные к примеру для гцц или кланга которые требуют сделать это. Но так как люди эти часто злоупотребляли компилятор иногда игнорирует требования программиста. Лучше использовать специальные макросы типа "горячий код" или наоборо "холодный" в спецификации они есть. Касательно реализации шаблонов на языке си, попробуй прямо погуглить templates in c. Техника стара как мир. Вообшем случае такой метод обеспечения полиморфизама конечно используют, но все же лучше использовать какой нибудь void и максимально отказаться от обобшенного кода на си. Большинство прикладных задач покрываются штуками вроде глиба, причем там часто используются макросы с специфичной идиомой примером может служить glib vector
    Ответ написан
  • Как создать свой тип данных в языке Си?

    @MaM
    Стандартный механизм определения нового тип в языке C, struct some{ ... }, union some{ ... }, enum some {...}. Подробней лучше почитать в стандарте или на https://en.cppreference.com/. Так же объявление типа указатель на объект типа type - type* type_name; или указатель, на указатель объекта типа type - type*** type_name; и т.д. , указатель на функцию void(func*)(int, int), массив объектов тип type some[num], (как с массивами так и с указателями возможны различные измерения типа массив массивов т.е. двумерный) однако с указателями на функции, а в обшем и преобразовании имени к указателю и преобразованию массивов к указателям и тд следует относится внимательно. Вообшем случае такие тонкости уже уровень для серьезного написания дров или осей, так что советую запастись стандартом так же система типов серьезно отличается от таковой в с++ (просто заранее предупреждаю). Так же, typedef struct {...} some полезная идеома языка си для создания алиса типа на анонимную структуру ( да есть анонимные структуры и другие типы данных), часто полезны в сочетании с расшерением гцц для вложенных функций для использования в scope in place. Для более глубокого понимания еше могут быть полезны битовые поля, часто в месте с выравниванием используюся для каламбуров типизации в сериализаторах и реализации псевдонаследования, каноническим примером могут служить сокеты беркли. Забыл упомянуть некоторые модификаторы типов такие как long long и тд тоже по сути используют зарезервированный фундаментальный тип https://stackoverflow.com/questions/35401017/is-lo... .
    Ответ написан
    Комментировать
  • Стоит ли в качестве первого языка программирования выбирать C++?

    @MaM
    Набежали бородатые дяденьки обгадить человека задавшего вопрос, вы учитывайте, что учить и писать это разные вещи, и если нечего сказать можно мимо пройти. По сути дела, учи СИ книга K&R. Далее накатываешь UE или другой крестовый двиг, разницы нет. en.cppreference.com/w/cpp . Из книг у каждого свой набор, я бы посоветовал начать с Тура в ++ от страуса, взять книгу по stl мейрса, современный с++. Открыть пару проектов на гите. Купи еще или скачать ЛАГ, я бы посоветовал Фикса.
    По факту вот сводка: C - крайне эффективен, основная идея пляшем от указателей; C++ -не менее эффективен, основная идея, заложить в язык базовые концепция автоматизированные под всё и вся с возможностью залезть куды хочешь, C# - основная идея, программист по факту дурак, если он не сказал обратного == подходит для тяп-ляп и надежно (на самом деле это больше преимущество, чем недостаток, есть unity, прост как два пальца об асфальт), Python - надо собрать в кучу гору разной фигни и мы особо не понимаем и не хотим понимать как оно, да и не надо нам. Так же хотим кучу всего готового и сразу, удобно использовать как встраиваемый яп. Ну и да, тебе больше придется матаны покорять, чем программировать на первых порах.
    Ответ написан
  • С какого смешения выполняется uefi или bios?

    @MaM Автор вопроса
    Вход происходит по адресу FFFF:FFF0H - так называемая область Boot bloke. Все довольно подробно в спецификации intell. Однако сложновато.
    Ответ написан
    Комментировать