c-preprocessor ×3
Создан 05.01.2025
31
голоса
5
ответов
33
просмотров
В чем разница между #include <filename> и #include "filename"?

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

#include <filename> #include "filename"

9
голоса
5
ответов
25
просмотров
Почему в макросах используются, казалось бы, бессмысленные операторы 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. Почему нельзя просто написать это без...

7
голоса
4
ответов
25
просмотров
Почему используются #ifndef и #define в заголовочных файлах C++?

Я заметил, что в начале заголовочных файлов часто встречается следующий код:

#ifndef HEADERFILE_H
#define HEADERFILE_H

А в конце файла находится:

#endif

Какова цель этого?