Вопросы
Что такое "кэш-дружественный" код?
Какова разница между "кодом, не дружелюбным к кэшу" и "дружелюбным к кэшу" кодом?
Как я могу убедиться, что пишу эффективный с точки зрения кэширования код?
Что такое ошибка сегментации?
Что такое ошибка сегментации? Есть ли разница между языками C и C++ в этом контексте? Как ошибки сегментации связаны с висячими указателями?
Каково влияние extern "C" в C++?
Проблема заключается в том, что неясно, какую роль играет конструкция extern "C"
в коде на C++.
Например, я могу привести следующий фрагмент кода:
extern "C" { void foo(); }
Ожидается, что ответ на вопрос о том, что делает эта конструкция, поможет мне лучше понять, как интерфейсы C и C++...
Почему переменные нельзя объявлять в операторе switch?
У меня всегда возникал вопрос: почему нельзя объявлять переменные после метки case в операторе switch? В C++ можно объявлять переменные практически в любом месте (причём объявление их ближе к первому использованию, безусловно, является хорошей практикой), но следующий код всё равно не...
Как использовать extern для обмена переменными между исходными файлами?
Я знаю, что глобальные переменные в C иногда имеют ключевое слово extern. Что такое переменная extern? Каково её объявление? Каков её диапазон видимости?
Это связано с обменом переменными между исходными файлами, но как именно это работает? Где мне использовать extern?
Почему в макросах используются, казалось бы, бессмысленные операторы 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. Почему нельзя просто написать это без...
Является ли < быстрее, чем <=?
Является ли выражение if (a < 901) быстрее, чем if (a <= 900)? Хотя в этом простом примере разница в производительности незначительна, но в более сложных циклах можно наблюдать небольшие изменения в производительности. Я предполагаю, что это может как-то влиять на сгенерированный машинный...
В чем разница между #include <filename> и #include "filename"?
В чем разница между использованием угловых скобок и кавычек в директиве include?
#include <filename> #include "filename"
Как изменить цвет вывода echo в Linux
Я пытаюсь вывести текст в терминале с помощью команды echo.
Я хочу, чтобы текст был напечатан красным цветом. Как мне это сделать?
Разница между const int*, const int * const и int * const?
Я всегда путаюсь, как правильно использовать const int *
, const int * const
и int * const
. Существенно ли их различие? Существуют ли какие-то правила, определяющие, что можно, а что нельзя делать с этими указателями?
Мне нужно знать все "можно" и "нельзя" в контексте присваивания, передачи...