Задать вопрос
Ответы пользователя по тегу C
  • Что за ошибка при компиляции?

    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
    Ответ написан
    Комментировать
  • Как задать размер массива через аргументы функции?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    В памяти массив все равно одномерный будет, хоть тресни ;) N-мерность нужна для удобства доступа.
    Ответ написан
    Комментировать