История изменений
Исправление
Moisha_Liberman,
(текущая версия)
:
Точно-точно. stdio.h только в одном файле и ни-ни в других.
Вам бы, милейший, врачу что ли показаться... Не задумывались?
Ну хорошо. Давайте вместе с Вами откроем https://www.gnu.org/software/m68hc11/examples/stdio_8h-source.html и удивимся?
Смотрите, Вас ни на какие мысли не наталкивают строки оттуда:
#ifndef _STDIO_H_
#define _STDIO_H_
#endif /* _STDIO_H_ */
Так вот. Открою Вам страшную тайну. Эти строки называются «include guard» или «header guard». Это абсолютно точно (я это Вам гарантирую!), тоже самое что и #pragma once. Разве что использование #pragma once чуток лучше из-за отсутствия даже потенциальной коллизии имён, текста набирать меньше, да и компиль сам умеет имена разруливать.
Но в обоих случаях это защита от дурака, везде сующего по сто раз одни и те же инклюды. Впрочем, дурак об этом даже не догадывается. Ему без надобности.
Тот самый случай когда компиль умнее погроммиста.
Исправление
Moisha_Liberman,
:
Точно-точно. stdio.h только в одном файле и ни-ни в других.
Вам бы, милейший, врачу что ли показаться... Не задумывались?
Ну хорошо. Давайте вместе с Вами откроем https://www.gnu.org/software/m68hc11/examples/stdio_8h-source.html и удивимся?
Смотрите, Вас ни на какие мысли не наталкивают строки оттуда:
#ifndef _STDIO_H_
#define _STDIO_H_
#endif /* _STDIO_H_ */
Так вот. Открою Вам страшную тайну. Эти строки называются «include guard» или «header guard». Это абсолютно точно (я это Вам гарантирую!), что и #pragma once. Разве что использование #pragma once чуток лучше из-за отсутствия даже потенциальной коллизии имён, текста набирать меньше, да и компиль сам умеет имена разруливать.
Но в обоих случаях это защита от дурака, везде сующего по сто раз одни и те же инклюды. Впрочем, дурак об этом даже не догадывается. Ему без надобности.
Тот самый случай когда компиль умнее погроммиста.
Исходная версия
Moisha_Liberman,
:
Вам бы санитаров вызвать...
Вам бы, милейший, врачу что ли показаться... Не задумывались?
Ну хорошо. Давайте вместе с Вами откроем https://www.gnu.org/software/m68hc11/examples/stdio_8h-source.html и удивимся?
Смотрите, Вас ни на какие мысли не наталкивают строки оттуда:
#ifndef _STDIO_H_
#define _STDIO_H_
#endif /* _STDIO_H_ */
Так вот. Открою Вам страшную тайну. Эти строки называются «include guard» или «header guard». Это абсолютно точно (я это Вам гарантирую!), что и #pragma once. Разве что использование #pragma once чуток лучше из-за отсутствия даже потенциальной коллизии имён, текста набирать меньше, да и компиль сам умеет имена разруливать.
Но в обоих случаях это защита от дурака, везде сующего по сто раз одни и те же инклюды. Впрочем, дурак об этом даже не догадывается. Ему без надобности.
Тот самый случай когда компиль умнее погроммиста.