Ответы пользователя по тегу C
  • Стоит ли мучить Си?

    mbeloshitsky
    @mbeloshitsky
    Вебдев, систем оперейшонс, ж.д. автоматика
    Обычно на Си в линуксе пишутся консольные утилиты a-la tcpdump или coreutils, которые "делают только одну задачу, но делают хорошо" и к которым предъявляются повышенные требования по кроссплатформенности.

    GUI на Си начинать писать точно не стоит. Попробуйте начать писать его на питоне или крестах. Когда научитесь, в ряде случаев допустимо будет писать и на Си, но только если выхода нет - например вы дорабатываете какое-нибудь xfce, которое уже написано на Си, или командные требования жестко определяют язык написания. Но первоначальный опыт с GUI все же советую получить в языке с объектами. Что в Qt, что в Gtk все на объектах построено и начиная с Си вы не будете до конца понимать "зачем они так сделали".
    Ответ написан
  • Почему перезаписываются данные в структуре?

    mbeloshitsky
    @mbeloshitsky
    Вебдев, систем оперейшонс, ж.д. автоматика
    Вы же выделяете массив, поэтому по-моему здесь нужен указатель на указатель:

    int allocate_lines(struct line** lines, int Number)
    {
      lines* = (line*)malloc(Number*sizeof(struct line));
      if (!lines)
      {
        return CANT_ALLOCATE_LINES;
      }
      return OK;
    }
    ...
    struct line * lines;
    error = allocate_lines(&lines, View.Model.Edge.Number);
    Ответ написан
  • Сравнение языков Ада и Си, какой из них более приемлем для разработки военной техники?

    mbeloshitsky
    @mbeloshitsky
    Вебдев, систем оперейшонс, ж.д. автоматика
    Наш железнодорожный стандарт EN 50128 дает следующие рекомендации по использованию языков (О - обязательно, Р - рекомендовано, СР - строго рекомендовано, НР - нерекомендовано):

    8775de3e14f24be9a0bacfa0c4d94d4b.png

    Из этой картинки видно, что С и С++ рекомендуется применять в основном в виде регламентированного подмножества со стандартами кодирования (обычно это означает некие ограничения на ссылочную семантику и методы управления памятью), ада же рекомендуется всегда. Думаю, что военные стандарты дают примерно такие же рекомендации. Другое дело, что порог вхождения в Аду несколько выше и количество людей, у которых вы можете спросить совета несколько меньше. Кроме того, если вы и попадете разработчиком на какое-либо из предприятий ОПК далеко не факт, что там будут использовать аду, так что учить ее имеет смысл, только если вы точно уверены в том, что на вашем будущем рабочем месте придется с ней столкнуться. Так что рекомендую сначала заняться Си и Си++ как более демократичными инструментами.
    Ответ написан