Ответы пользователя по тегу C
  • Как пофиксить ошибку линковщика?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Вам надо сделать следующее:
    - Создать проект в вашей IDE (VisualStudio), на основе CMake (предпочтительно) или MSBuild
    - Посмотреть как реализована интеграция с пакетным менеджером vcpkg
    - Добавить в список зависимостей vcpkg libcurl

    После этих простых шагов (по каждому из которых много документации в открытом доступе), всё у вас заработает. Точно так же можно получать другие полезные зависимости с помощью vcpkg.
    Это и будет современным и переносимым подходом к разработке и управлению зависимостями.
    Ответ написан
    Комментировать
  • Компилятор понимает какой тип данных вы ему подаёте на вход?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Да.

    Это целочисленный литерал с точки зрения языка. Суффикс может уточнить тип, например 1u указывает, что это беззнаковый целый тип, а 1.f что это число с плавающей точкой (единичной точности), а 1.d двойной.

    Кроме того, результирующей тип выражения будет определятся на основе типа операндов. Например, в вашем коде "a / 4" -- это int, а "a / 4.d" уже double. Поэтому, когда вы посмотрите содержимое x, то можете быть немного удивлены.

    Если вы задаёте все эти вопросы не с целью потроллить, то прочтите вот эту тонюсенькую книжечку: https://www.amazon.com/Programming-Language-2nd-Br... . Около 300 страниц всего; русская версия тоже есть.
    Ответ написан
    6 комментариев
  • Порядок инклюдов в C89 жёсткий?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    3 комментария
  • Как выполнять С89/C++ код в Visual Studio Code?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Верно пишут. Без компилятора никак. Качайте SDK и/или плагин, или устанавливаете компилятор отдельно.
    Компилятора в винде нет встроенного, насколько мне известно.
    Ответ написан
    Комментировать
  • В чем разница между указателями в си?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Есть понятие стека. Стек небольшого размера: на нём большие объекты лучше не выделять. Поэтому необходима ещё и куча -- там выделяют память с помощью malloc.

    Помимо этого, в первом и втором случае различается время жизни объектов. Объект, выделенный на стеке живёт до конца области видимости (до закрывающейся фигурной скобки обычно). Объект выделенный в куче живёт пока его явно не удалят (с помощью метода free, который вы забыли вызвать). Т.е. такие динамически выделенные объекты ещё и удобны, если вам надо передать сам объект и/или управление его временем жизни в другую часть программы.

    Ну и если вы хотите модифицировать любой объект (не важно как созданный) в какой-то сторонней функции, то вам надо передать указатель на этот объект. Насколько я помню, в C ссылок нет.

    PS
    По C лучше K&R читайте.
    Ответ написан
    Комментировать
  • Где теряю память?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    где не доучил матчасть?

    В части работы с памятью: выделение и очиска памяти, стек и куча, различие между массивом и одним элементом, время жизни объектов.
    Например, вы читаете данные в элемент, который представляет собой один символ, выделенный на стеке. Вам же нужен буфер достаточно размера, лучше всего выделенный динамически, т.к. вы его потом собираетесь хранить в какой-то структуре данных.
    Рекоменду вдумчиво прочитать K&R и выполнить все примеры. Это очень маленькая книжка, которая закроет все ваши пробелы в плане языка С.
    Ответ написан
    Комментировать
  • Как получить приоритеты потоков?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Вы вроде всё правильно делаете, правда вам необходимо вызвать функцию, чтобы установить приоритеты потоков, и только потом вы сможете их вывести. Вот тут можно почитать подробнее: man7.org/linux/man-pages/man3/pthread_setschedpara...
    Ответ написан
  • Где найти хорошие видео уроки по С?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Я не знаю насчёт видео уроков, но рекомендую прочесть небольшую книжку: https://en.wikipedia.org/wiki/The_C_Programming_La...
    Ответ написан
    Комментировать
  • Работа с различными типами данных в си?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Можно старый добрый способ: структура, в которой два поля: enum и union. В зависимости от значения перечисления можно по разному читать union.
    Ну или void*, вместо union. Или свою реализацию vtable.
    Ответ написан
    2 комментария
  • Найти самое часто встречающееся слово в тексте. Ввод слов в динамический массив. Как сделать без map?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Найти/сделать ассоциативный контейнер. Думаю, реализаций деревьев бинарного поиска на С предостаточно. Ещё можно простую хэш-таблицу на коленке сделать, наверно это даже проще. Просто с обычным линейным поиском по массиву у вас очень долго программа работать будет.
    Если реальный проект, а не просто задача для саморазвития, то однозначно искать готовые реализации.
    Ответ написан
    Комментировать
  • Какой компилятор установить для Clion?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    А они разве не поставляют компилятор под винду вместе с IDE? Под Линукс, например поставляют и компилятор, и отладчик, и даже cmake.
    Ответ написан
    7 комментариев
  • Можно ли писать на чистом Си под Qt? Или для этого нужно именно Си++?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Теоретически можно, но вот на практике получится всё печально. C++ и C это два совершенно разных язык, а соотвественно и подход к разработке разный. Хороший C программист, который только начал писать на плюсах, почти на 100% плохой C++ программист, который пишет на "C с классами" и много не понимает. Разумеется после знакомства с C научиться использовать C++ будет легче и это плюс.
    А в Qt надо знать C++ на приличном уровне (и много чего еще), чтобы не спотыкаться на очевидных вещах и не применять GDD подход без понимая происходящего :)
    Ответ написан
    Комментировать
  • Какой задачник по C / C++ выбрать?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Неплохой задачник без привязки к языку: www.ozon.ru/context/detail/id/28277297
    Ответ написан
    Комментировать