📝

C++ — Препроцессор, компоновка, ODR

#include, #define, макросы, conditional compilation, ODR, translation units, static/extern linkage, заголовочные файлы, include guards.

24 вопросов · 24 показано

EasyЧто делает #include и какие есть формы?EasyЧем #include <header> отличается от "header"?EasyЧто такое include guards и зачем нужны?EasyЧто такое #pragma once?MediumЧто делает #define и какие есть виды макросов?MediumКакие есть операторы в макросах (# и ##)?MediumЧто такое conditional compilation (#ifdef, #ifndef, #if)?EasyЧто такое predefined macros (__FILE__, __LINE__, __func__)?HardЧто такое ODR (One Definition Rule)?MediumЧто такое translation unit?MediumЧем internal linkage отличается от external linkage?MediumЗачем нужен anonymous namespace?EasyЧто такое extern и для чего используется?MediumЧем static в C++ имеет несколько значений?MediumЧто такое static-локальная переменная функции?EasyЧто такое forward declaration и для чего?EasyЧем declaration отличается от definition?HardЧто такое explicit template instantiation?HardЧто такое X-Macros?MediumЧто такое variadic macros (C++11)?EasyЧто такое #error и #warning?EasyЧто такое static_assert с constexpr условием?EasyЧто такое #undef и зачем?MediumЧем #pragma отличается от #pragma once?