📝
C++ — Препроцессор, компоновка, ODR
#include, #define, макросы, conditional compilation, ODR, translation units, static/extern linkage, заголовочные файлы, include guards.
24 вопросов · 24 показано
EasyЧто делает #include и какие есть формы?includeEasyЧем #include <header> отличается от "header"?includeEasyЧто такое include guards и зачем нужны?include-guardsEasyЧто такое #pragma once?pragma-onceMediumЧто делает #define и какие есть виды макросов?definemacrosMediumКакие есть операторы в макросах (# и ##)?macrosstringificationMediumЧто такое conditional compilation (#ifdef, #ifndef, #if)?ifdefEasyЧто такое predefined macros (__FILE__, __LINE__, __func__)?predefined-macrosHardЧто такое ODR (One Definition Rule)?odrMediumЧто такое translation unit?translation-unitMediumЧем internal linkage отличается от external linkage?linkageMediumЗачем нужен anonymous namespace?anonymous-namespaceEasyЧто такое extern и для чего используется?externMediumЧем static в C++ имеет несколько значений?staticMediumЧто такое static-локальная переменная функции?staticEasyЧто такое forward declaration и для чего?forward-declarationEasyЧем declaration отличается от definition?declarationHardЧто такое explicit template instantiation?template-instantiationHardЧто такое X-Macros?x-macrosMediumЧто такое variadic macros (C++11)?variadic-macrosEasyЧто такое #error и #warning?error-warningEasyЧто такое static_assert с constexpr условием?static-assertEasyЧто такое #undef и зачем?undefMediumЧем #pragma отличается от #pragma once?pragma