Вопросы с тегом «c»

79
Как работает сборка мусора на языках, которые скомпилированы изначально?

После просмотра нескольких ответов о переполнении стека становится ясно, что некоторые скомпилированные в нативе языки имеют сборку мусора . Но мне неясно, как именно это будет работать. Я понимаю, как сборка мусора может работать с интерпретированным языком. Сборщик мусора будет просто работать...

79
Зачем использовать завершающие переводы строк вместо лидирующих с printf?

Я слышал, что при использовании вы должны избегать вводить новые строки printf. Так что вместо printf("\nHello World!")тебя стоит использоватьprintf("Hello World!\n") В этом конкретном примере выше это не имеет смысла, поскольку выходные данные будут другими, но учтите это: printf("Initializing");...

78
Почему нет систем управления пакетами для C и C ++? [закрыто]

Существует несколько языков программирования, для которых существует система управления пакетами: CTAN для TeX CPAN для Perl Пип и яйца для Python Maven для Java клика для Хаскелла Драгоценные камни для Руби НПМ для NodeJS Бауэр для внешнего интерфейса Javascript & CSS Nuget для C # композитор...

78
Можно ли заменить оптимизированный код читаемым кодом?

Иногда вы сталкиваетесь с ситуацией, когда вам нужно расширить / улучшить какой-то существующий код. Вы видите, что старый код очень скудный, но его также сложно расширять, и на его чтение требуется время. Это хорошая идея, чтобы заменить его современным кодом? Некоторое время назад мне понравился...

77
В чем преимущество объектно-ориентированного программирования перед процедурным программированием?

Я пытаюсь понять разницу между процедурными языками, такими как C, и объектно-ориентированными языками, такими как C ++. Я никогда не использовал C ++, но я обсуждал со своими друзьями, как их различать. Мне сказали, что C ++ имеет объектно-ориентированные концепции, а также публичные и частные...

77
Почему массивы C не отслеживают их длину?

Что послужило причиной отсутствия явного хранения длины массива в массиве C? На мой взгляд, есть веские причины для этого, но не очень много в поддержку стандарта (C89). Например: Наличие длины в буфере может предотвратить переполнение буфера. Стиль Java arr.lengthпонятен и избавляет программиста...

77
Что такое раннее и позднее связывание?

Я продолжаю слышать о раннем и позднем связывании, но я не понимаю, что это такое. Я нашел следующее объяснение, которое я не понимаю: Раннее связывание относится к присвоению значений переменным во время разработки, тогда как позднее связывание относится к присвоению значений переменным во время...

75
Как тренировать себя, чтобы не писать «умный» код? [закрыто]

Знаете ли вы это чувство, когда вам просто нужно показать этот новый трюк с Expressions или обобщить три разные процедуры? Это не должно быть в масштабе Архитектуры Астронавта и на самом деле может быть полезным, но я не могу не заметить, что кто-то другой реализовал бы тот же класс или пакет более...

74
Почему я должен использовать шаблон MVC?

Кажется, что сегодня все, кто занимается веб-приложениями, хотят использовать MVC для всего. Однако мне трудно убедить себя в использовании этого паттерна. Я понимаю, что основная идея состоит в том, чтобы отделить логику бэкэнда от внешнего интерфейса, представляющего программу. Как правило,...

74
Хранятся ли в оперативной памяти объявления типов данных, такие как «int» и «char», когда выполняется программа на C?

Когда выполняется программа на C, данные сохраняются в куче или стеке. Значения хранятся в адресах RAM. Но как насчет индикаторов типа (например, intили char)? Они тоже хранятся? Рассмотрим следующий код: char a = 'A'; int x = 4; Я прочитал, что A и 4 хранятся в адресах RAM здесь. Но как насчет aи...

73
Это хорошая практика, чтобы заменить деление с умножением, когда это возможно?

Всякий раз, когда мне нужно деление, например, проверка условий, я хотел бы реорганизовать выражение деления на умножение, например: Оригинальная версия: if(newValue / oldValue >= SOME_CONSTANT) Новая версия: if(newValue >= oldValue * SOME_CONSTANT) Потому что я думаю, что можно избежать:...

72
Почему так мало C-компиляторов?

Си является одним из наиболее широко используемых языков в мире. На его долю приходится огромная доля существующего кода, и он продолжает использоваться для огромного количества нового кода. Он пользуется популярностью среди пользователей, настолько широко портирован, что возможность запуска C...

71
Почему я должен заботиться о микропроизводительности и эффективности?

Многие вопросы и ответы на страницах C / C ++, конкретно или косвенно обсуждают проблемы микро производительности (такие как издержки косвенной или прямой против встроенной функции), или использование алгоритма O (N 2 ) против O (N log N) на список из 100 предметов. Я всегда пишу код, не заботясь о...

71
Что должно и что не должно быть в заголовочном файле? [закрыто]

Какие вещи абсолютно никогда не должны быть включены в заголовочный файл? Например, если я работаю с задокументированным форматом промышленного стандарта, который имеет много констант, будет ли хорошей практикой определять их в заголовочном файле (если я пишу парсер для этого формата)? Какие...

70
Зачем ставить бизнес-логику в модель? Что происходит, когда у меня несколько типов хранилищ?

Я всегда думал, что бизнес-логика должна быть в контроллере, и что контроллер, поскольку он является «средней» частью, остается статичным и что модель / представление должны передаваться через интерфейсы. Таким образом, вы можете изменить бизнес-логику, не влияя ни на что другое, запрограммировав...

70
Что такое / Есть ли правильный способ сообщить руководству, что наш код отстой?

Наш код плохой. Это, возможно, не всегда считалось плохим, но это плохо и только идет вниз. Я начал учиться в колледже меньше года назад, и многие вещи в нашем кодексе озадачивают меня. Сначала я подумал, что как новый парень я должен держать рот на замке, пока не узнаю немного больше о нашей...

69
Какие алгоритмы / структуры данных я должен «распознавать» и знать по имени? [закрыто]

Я хотел бы считать себя довольно опытным программистом. Я программирую уже более 5 лет. Мое слабое место, хотя это терминология. Я самоучка, поэтому, хотя я знаю, как программировать, я не знаю некоторые из более формальных аспектов информатики. Итак, что такое практические алгоритмы / структуры...

68
Почему С преобладал над Паскалем? [закрыто]

Насколько я понимаю, в 1980-х, а возможно, и в 1990-х, Паскаль и Си были в значительной степени непосредственными, как производственные языки. Является ли окончательная кончина Паскаля только из-за пренебрежения Борланда Дельфи ? Или что-то еще, например, невезение или что-то не так с Паскалем...

67
Почему языки требуют скобок вокруг выражений, когда они используются с «if» и «while»?

Языки , как C, Java и C ++ все требуют скобки вокруг всего выражения при использовании в if, whileили switch. if (true) { // Do something } в отличие от if true { // Do something } Это кажется мне странным, потому что круглые скобки излишни. В этом примере trueэто отдельное выражение само по себе....

67
Как избежать логических ошибок в коде, когда TDD не помог?

Недавно я писал небольшой кусочек кода, который по-человечески укажет, сколько лет событию. Например, это может указывать на то, что событие произошло «Три недели назад», «Месяц назад» или «Вчера». Требования были относительно ясны, и это был идеальный случай для разработки, основанной на...