LINUX.ORG.RU

История изменений

Исправление 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 чуток лучше из-за отсутствия даже потенциальной коллизии имён, текста набирать меньше, да и компиль сам умеет имена разруливать.

Но в обоих случаях это защита от дурака, везде сующего по сто раз одни и те же инклюды. Впрочем, дурак об этом даже не догадывается. Ему без надобности.

Тот самый случай когда компиль умнее погроммиста.