c ×10
Создан 05.01.2025
8
голоса
5
ответов
11
просмотров
Что такое "кэш-дружественный" код?

Какова разница между "кодом, не дружелюбным к кэшу" и "дружелюбным к кэшу" кодом?

Как я могу убедиться, что пишу эффективный с точки зрения кэширования код?

8
голоса
5
ответов
5
просмотров
Что такое ошибка сегментации?

Что такое ошибка сегментации? Есть ли разница между языками C и C++ в этом контексте? Как ошибки сегментации связаны с висячими указателями?

21
голоса
5
ответов
10
просмотров
Каково влияние extern "C" в C++?

Проблема заключается в том, что неясно, какую роль играет конструкция extern "C" в коде на C++.

Например, я могу привести следующий фрагмент кода:

extern "C" { void foo(); }

Ожидается, что ответ на вопрос о том, что делает эта конструкция, поможет мне лучше понять, как интерфейсы C и C++...

11
голоса
5
ответов
13
просмотров
Почему переменные нельзя объявлять в операторе switch?

У меня всегда возникал вопрос: почему нельзя объявлять переменные после метки case в операторе switch? В C++ можно объявлять переменные практически в любом месте (причём объявление их ближе к первому использованию, безусловно, является хорошей практикой), но следующий код всё равно не...

12
голоса
5
ответов
9
просмотров
Как использовать extern для обмена переменными между исходными файлами?

Я знаю, что глобальные переменные в C иногда имеют ключевое слово extern. Что такое переменная extern? Каково её объявление? Каков её диапазон видимости?

Это связано с обменом переменными между исходными файлами, но как именно это работает? Где мне использовать extern?

9
голоса
5
ответов
4
просмотров
Почему в макросах используются, казалось бы, бессмысленные операторы do-while и if-else?

В многих макросах на C/C++ я замечаю, что код макроса обернут в циклы do while, которые, по сути, кажутся бессмысленными. Вот примеры: #define FOO(X) do { f(X); g(X); } while (0) #define FOO(X) if (1) { f(X); g(X); } else

Я не понимаю, зачем нужен do while. Почему нельзя просто написать это без...

17
голоса
5
ответов
13
просмотров
Является ли < быстрее, чем <=?

Является ли выражение if (a < 901) быстрее, чем if (a <= 900)? Хотя в этом простом примере разница в производительности незначительна, но в более сложных циклах можно наблюдать небольшие изменения в производительности. Я предполагаю, что это может как-то влиять на сгенерированный машинный...

31
голоса
5
ответов
11
просмотров
В чем разница между #include <filename> и #include "filename"?

В чем разница между использованием угловых скобок и кавычек в директиве include?

#include <filename> #include "filename"

28
голоса
5
ответов
25
просмотров
Как изменить цвет вывода echo в Linux

Я пытаюсь вывести текст в терминале с помощью команды echo.

Я хочу, чтобы текст был напечатан красным цветом. Как мне это сделать?

18
голоса
5
ответов
12
просмотров
Разница между const int*, const int * const и int * const?

Я всегда путаюсь, как правильно использовать const int *, const int * const и int * const. Существенно ли их различие? Существуют ли какие-то правила, определяющие, что можно, а что нельзя делать с этими указателями?

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