Ответы пользователя по тегу C
  • Как осуществить заполнение длинного массива переменными в СИ?

    @alexanius
    Если нет функции, по которой заполняются значения, то можно делать что-нибудь в таком роде:

    int a = 1, b = 2, c = 3;
    int x[3] = {a, b, c};


    И да, в тэгах поставьте, пожалуйста "C"
    Ответ написан
    Комментировать
  • Какой выбрать парсер c/c++ кода, на c/c++?

    @alexanius
    Если нужно только выделить все числа, то используйте регулярные выражения. Они подойдут и для более сложных задач (например найти присваивания). Я обычно пользуюсь qt'шными regexp'ами, но если проект привязан к mfc, то посмотрите в стандартные. Для целых чисел самый простой паттерн будет таким: [0-9]+. Разумется, в реальной задаче им всё не ограничится.

    Если стоит задача всё же на разбор кода, то тут всё усложняется. Можно писать свой велосипед на flex+bison. В случае с C/C++ Вам гарантировано незабываемое удовольствие .

    Если нужен точный анализ программы, посмотрите в сторону clang.
    Ответ написан
    Комментировать
  • Почему реализовать C настолько сложно?

    @alexanius
    Язык Си очень сложный и написать его нормальную реализацию - весьма нетривиальная задача.

    При написании фронтенда встаёт задача во-первых правильно его распарсить. А с точки зрения построения парсера, Си далеко не самый простой язык. Готовой BNF грамматики для него Вы не найдёте. Плюс необходимо поддерживать пол десятка разных стандартов.

    Далее нужно продумать что и как ВЫ будете отдавать в мидленд. Т.е. нужно спроектировать представление, с которым будет удобно работать оптимизациям, которое будет отображать как можно больше особенностей языка, но при этом не будет слишком сложным.

    Нужно сделать обработку и вывод ошибок. Например в edg (промышленный фронтенд) разных сообщений об ошибках 2500.
    Ответ написан
    5 комментариев
  • Ubuntu 12.04. Учусь программированию. На чем писать программы в этой системе?

    @alexanius
    Какой встроенный компилятор в какой терминал? Компилятор - отдельная программа, которая никуда не встраивается. От терминала она никак не зависит.

    Для новичка лучше использовать текстовый редактор. Тем более что текстовый редактор без возможностей IDE ещё поискать надо. Используйте vim. Будет непривычно, но потом без него жить не сможете. Лично я использую QtCreator.

    Про компилятор. Есть основной компилятор - gcc. Не знаю установлен ли он там по умолчанию, но можете использовать его. Можете также поставить clang - пока что это не сыграет никакой роли.
    Ответ написан
    4 комментария