Задать вопрос
Ответы пользователя по тегу C
  • По какой книге можно хорошо СИ изучить?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    M. УЭИТ С. ПРАТА Д. МАРТИН Язык Си. Книга отнюдь не новая, а весьма даже старая, но когда-то она здорово мне помогла - собственно все мое умение писать на С началось с нее...
    Ответ написан
    1 комментарий
  • Что за ошибка при компиляции?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    Английским по белому - файл cal.h не найден
    Ответ написан
  • Как запустить программу на Си с помощью bcc32.exe если возникает ошибка "Unresolved external..."?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    мама дорогая, кто-то еще пользуется Борманом?

    Правильно понимаете. Линкер не может собрать исполняемый модуль, потому что не знает где найти точки входа в процедуры beginthread и endthread. Спросите гугла, как их добавить (если конечно он это знает. Бормана я использовал последний раз ээээ.... 15 лет назад....)
    Ответ написан
    Комментировать
  • Почему Segmentation fault?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    Чего удивительного-то?
    Node* new_node;
    завели указатель на структуру Node. Который указывает в никуда, то есть по случайному адресу, который там будет записан. Нужно вот так:
    Node* new_node = (Node *) calloc((sizeof(Node),1);
    Это сразу и память выделит и проинициализирует ее нулями.
    Ответ написан
    Комментировать
  • Как прочитать конкретные байты из файла используя язык С?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    man open
    man seek
    man read
    man close

    :D
    Ответ написан
    Комментировать
  • Быстродействие за счет ногопоточьности в процессорах с помощью pthread, Cи?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    Ээээ... язык С, регистры, многопоточность, pthread... каша какая-то. В С конечно, можно работать с регистрами - и через register и через асмовые вставки. Но только та многопоточность, которая доступна в pthread, она к регистровой многопоточности никакого отношения не имеет. Оптимизацию на уровне регистров можно делать на асме, на микроконтроллере - но в программе на С вся она будет попереломана нафиг компилятором :)
    pthread и вообще совершенно другую задачу решает.
    Ответ написан
  • Какая есть среда разработки на С?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    Netbeans, KDevelop (но последний только в линухе и только в KDE)
    Ответ написан
  • Как передать в функцию переменные и вернуть их?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    Можно, в принципе, передавать пять указателей, но это криво и громоздко. В таких случаях делают, как сказал tugo - структуру, передать указатель на структуру и в функции делать с ней, что надо
    Ответ написан
    Комментировать
  • В чем разница двух этих кодов?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    Потому что в первом коде четыре вызова client.println(), которых во втором нет. Насколько быстро выполняется один вызов? А во втором обычные символьные сравнения да присваивания.
    Ответ написан
    Комментировать
  • Как сделать безлимитный массив?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    Так "безлимитный" или "сколько хочет"? "Безлимитный" подразумевает "растущий по мере добавления элементов". Теоретически можно реализовать с постоянным realloc-ом, только зачем? "Сколько хочет" полразумевает, что юзер задал некое количество элементов массива, а потом получили память под его хранение и адресовали начало.

    Массив в С - одно-, двух-, N- мерный - это всего лишь область памяти, указатели в которой передвигаются вручную по нужным принципам. Это не перл.
    Ответ написан
    Комментировать
  • В каких случаях пишут на C вместо C++?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    С++ не мог и не должен был вытеснить С просто потому что у них разные задачи и разные области применения :) Вас же не удивляет почему городские полотерки не вытеснили автомобили-внедорожники?
    Ответ написан
    Комментировать
  • Как перейти с C++ на C?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    Особо переходить никуда не надо, просто не использовать обьектную модель. stdio вместо iostream, printf и scanf вместо cout и cin - и т.д.
    Ответ написан
    Комментировать
  • Маленький диапазон char?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    числа от 1-9 - это минимум 2-3 символа (0 = \0)

    Бред.
    Читайте про типы данных. У вас в голове такая каша из char и *char, что даже страшно представить.
    '0' - 0x30, '1' - 0x31 и т.д. до '9' - 0x39.
    И 0 != '0' ни в коем случае.
    char - один символ. Диапазона 0-255 ему вполне хватает. Вам нужен массив из 33-х символов (почему 33-х? Попробуйте сами ответить на этот вопрос. Пока не ответите, дальше двигаться бессмысленно)
    Ответ написан
    Комментировать
  • Как компилировать код на C?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    Подробно и без лишнего - взаимоисключающие условия :)
    Обычно компилируют так:
    gcc -o myprog myprog.c
    И получаем бинарник с именем myprog :)

    Это в самом наипростейшем случае. В случае более посложнее используется Makefile, где много чего прописывается.
    Ответ написан
    Комментировать
  • Как считать два байта числа?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    Код писать лениво, опишу так
    Числа хранятся (на обычных x86) "задом наперед". То есть если число - int (32-битное) - оно займет 4 байта, причем самый старший байт будет "в хвосте". Для примера - есть буфер, содержащий 01 02 03 04, hex разумеется (Ваш пример неудачен). Если в буфере int - то какое это число? Правильно 0x04030201.
    Поэтому ничего никуда разворачивать не надо, магия С - в адресной арифметике!
    tydedef struct {
    short int a;
    int b;
    } wrk_buf;
    
    wrk_buf my_buf;
    read(desc, (void *) &my_buf, 1000);

    После чего можно будет просто обращаться к полям структуры - как к обычным переменным. Понятно, что файл нужно сначала открыть, получить его размер - 1000 - условное число.
    Ответ написан
    Комментировать
  • Грамматика для языка Си?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    Гуглить
    гуглить
    и гуглить
    свою задачу настоящим образом!
    Ответ написан
    Комментировать
  • Как записать такую математику языком си?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    Сложности могут быть только с первым выражением - я сейчас не помню, есть ли в стандартных функциях ln(), или же придется какую-то библиотеку искать. Про котангенс - в предыдущем вопросе, пишется простяцкая функция (а можно и без), последний вообще решается на стандартных функциях
    Ответ написан
  • Как в си найти котангенс?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    Да довольно просто, если спросить гугл показать школьный учебник по тригонометрии.

    ctg N = cos N/sin N
    ctg N = 1 / tg N (потому что ctg N * tg N = 1)

    cos(), sin(), tg() - стандартные математические функции
    Ответ написан
    Комментировать
  • Сколько памяти занимает int в C?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    Влияют обычно несколько факторов.
    - архитектура. x32, x64, другие процы - в них int может быть разного размера
    - выравнивание в памяти. Можно задать прагму, которая будет принудительно выравнивать все на некую границу. Это используется редко, но помнится как-то мне было надо, чтобы области были гарантированно выровнены на 4 байта.

    Для наиболее частого случая - int - 4 байта, short int - 2 байта, char - 1 байт
    Ответ написан
    Комментировать
  • Какие различия программирования под UNIX и Linux?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    Сначала нужно определиться, что есть для Вас "системное программирование".
    Написание собственных демонов, использование очередей, нитей, общих областей памяти, сокетов, каналов? Сможете, хотя не факт, что примеры приведенные в книге, заработают в некоей конкретной версии линуха - маны читать все равно придется, они явно будут новее книги.
    Написание драйверов, системных вызовов, модулей ядра? Нет, нужно будет читать маны именно по kernel-hacking
    Ответ написан
    Комментировать