Задать вопрос
Ответы пользователя по тегу C
  • Какая ВУЗовская база необходима, для того, чтобы по праву считать себя техническим специалистом и развиваться в этом направлении дальше?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    "Отбросив шелуху" - это как? Что-то не учить?
    Если хотите стать хорошим специалистом, нужно учить больше, чем обычно, а не отбрасывать что-либо.

    Если вам кажется что в институте учат фигне, так в чем проблема эту фигню по-быстренькому выучить, сдать и учить дальше самостоятельно?
    Ответ написан
    Комментировать
  • Правильно ли я все понимаю?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    include <stdio.h> // include - директива препроцессора/программа, которая копирует содержимое файла stdio.h

    Можно и так, но правильнее "инклюдит", то есть вставляет.

    int main(void) { // функция main, которая возвращает целочисленное значение. аргументов не принимает

    void означает, что тип аргументов не определен и необязателен. Они могут передаваться, и даже с ними можно работать. Просто при вызове функции можно передавать, можно не передавать, не вызывая ошибку.

    int x  = 10; // объявление переменной x, которой присваивается значение 10

    да, определение с присваиванием

    return 0; // возврат родительному процессу(операционная система/терминал). 0 - завершение без ошибок

    Да. В стандарте С при return из main функции автоматически вызывает exit с возвратом кода в ОС.
    Ответ написан
    4 комментария
  • Если я хорошо освою C, я смогу написать свою ОС под свою хотелку?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Чисто теоретически, вирус можно написать почти на чем угодно.
    Но важно понимать, что вирус заражает операционную систему, а не исходный код.
    Поэтому вам нужно разбираться как именно работает операционная система, чтобы ломать ее безопасность и пользоваться уязвимостями.
    Ответ написан
    Комментировать
  • В какой программе компилировать .с файлы для консоли?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    стандартный gcc можетгуглите кросс-компиляция.
    GCC это умеет
    Ответ написан
    Комментировать
  • По какой книге учить С?

    saboteur_kiev
    @saboteur_kiev Куратор тега Книги
    software engineer
    Лучшее - враг хорошего. Долго искать самую лучшую книгу нет смысла.
    Читайте любую книгу, а лучше 2-3 разные.

    И читая книгу будет недостаточно. Нужна практика, иначе все прочитанное вылетит из головы.

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

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    код плохо читаемый, потому что названия функций и переменных у вас плохо говорят для чего они используются.
    А фор - ну технически можно и так.
    Ответ написан
    Комментировать
  • Как в одном execl выполнить две команды?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    "ls file; rm -f file"
    "ls file && rm -f file"
    "ls file || rm -f file"

    смотря что вам нужно
    Ответ написан
  • Что писать на C в начале и конце пути?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    на Си не обязательно писать сложные проекты.
    Напишите на Си несклько консольных утилит.
    Например программа для вывода текстового файла на экран, вывода списка содержимого каталога.
    Затем что-то посложнее типа date с подстановочными символами, QR encoder, архиватор, да что угодно.

    А идеи для проектов подкидывать нет смысла, никто ж не знает что вам лично интересно настолько, чтобы заставить сделать проект и довести его до рабочего варианта.
    Ответ написан
    Комментировать
  • Что есть структура, а что оператор в C?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Конкретно в вашем случае, просто переводчики переводили не слово в слово, а по сути.
    В одном случае под "структурой", переводчик имел ввиду весь синтаксис оператора if, подразумевая, что после if следует условие в скобках, а затем в фигурных скобках блок команд, если условие успешно и так далее.

    В другой книге переводчик просто не называл это структурой, а сразу сказал что это синтаксис для оператора if.

    Другими словами, в вашем конкретном случае структура if и оператор if одно и тоже.
    Ответ написан
    3 комментария
  • Что это за символы?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Это условие, описанное при помощи тернарных операторов.

    Формат такой Условие ? Команда_если_true : Команда_если_false
    в вашем случае, если i < n/2, то вывести a[i+n/2], иначе a[i-n/2]
    Ответ написан
    Комментировать
  • Как заменить все гласные буквы на пробелы?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Вроде в С нет специальных кондиций для такого.

    Или множественный case или сделать массив из гласных и еще одним внутренним циклом прогонять.
    Ответ написан
    Комментировать
  • C помощью каких функций можно узнать информацию о системе?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Для Linux можно просто прочитать содержимое файлов /proc/cpuinfo и /proc/meminfo
    Ответ написан
    Комментировать
  • C - Как посимвольно обработать строку, введённую с клавиатуры?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Очень сложный код, куча лишних проверок.
    Но на первый взгляд, вы count не обнуляете после обрезания первой цифры
    Ответ написан
    1 комментарий
  • Почему игровые движки пишут на C++?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Движок от minecraft написан на java, можете видеть в чем разница с точки зрения возможностей.
    Основная проблема - работа с памятью, которая в более низкоуровневых языках типа с/c++ под контролем программиста, следовательно производительность предсказуема.
    Ответ написан
    Комментировать
  • Как реализовать алгоритм вывода дробной части числа в двоичной системе счисления на языке си?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    В двоичной системе дробная часть не предусмотрена.
    Можете самостоятельно решить, сколько бит отдать на дробную часть, сколько на целую, и с этим работать.
    Ответ написан
  • Чем отличается динамическая библиотека от статической?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Подразумевается, что динамическая библиотека - уже есть в системе, и при запуске вашей программы библиотеку не нужно копировать вместе с вашей программой - необходимая (или совместимая) версия библиотеки уже будет доступна в системе.

    Статическая линковка - вы линкуетесь с конкретным файлом, и если копируете программу на другую машину, копируете и эту библиотеку вместе с исполняемым. С одной стороны у вас более надежно - точно заработает. С другой стороны - размер инсталлятора больше, если понадобилась статическая линковка - значит вы используете нестабильную/устаревшую библиотеку (это если мы говорим о системных библиотеках. Свои кастомные библиотеки можно линковать как вам удобно)
    Ответ написан
    3 комментария
  • Почему папка весит 0 байт?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    1. зависит от файловой системы.

    2. 0 байт вам показывает кто? Не каждая программа ковыряет на таком уровне, чтобы учитывать размер всего, где лежит информация про файл и про папку. Попробуйте другие программы. В Линуксе стандартный ls сразу будет показываьт, что папка занимает как минимум 1 блок (сейчас это обычно 4 кб).

    3. Для файлов - тоже самое, если у вас есть файл в 5 байт, у него где-то есть название, аттрибуты доступа, сектор в котором он лежит, но ваша программа это не показывает.

    Вывод, пустая папка весит не 0 байт, но подобная информация не для пользователя, а для администратора, который учитывает занятое место специальными программами, с учетом понимания как устроена файловая система.
    Ответ написан
    Комментировать
  • Какие различия программирования под UNIX и Linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    что я прочитаю книгу по системному программированию в UNIX и смогу после этого программировать в Linux без изменений?


    Конечно нет. чтобы программировать в Линукс нужно не просто прочитать книгу по системному программированию, а научиться программировать. На практике.
    А тогда будет неважно на чем будете программировать.
    Ответ написан
    Комментировать
  • Почему выводит лишние символы?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Потому что printf выводит не ваш массив, а строку, которая должна заканчиваться символом '\0'
    Ответ написан
    Комментировать
  • Строка - образец (шаблон) в СИ - что это?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    rwxrwxrwx стандартный способ указания прав доступа в Posix системах (например Linux).
    буквы расшифровываются как "Read" "Write" "eXecute"
    три набора - первый владелец, второй группа - все остальные.
    таким образом rwxr-xr-x означает, что у владельца rwx (все права), у группы r-x, у остальных (кто не является владельцем и не входит в указанную групппу) r-x
    Ответ написан