Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Borkot
4 / 4 / 0
Регистрация: 05.05.2012
Сообщений: 183
Записей в блоге: 1
#1

Объяаление #ifndef STRING_H_ - C++

15.06.2013, 12:53. Просмотров 318. Ответов 9
Метки нет (Все метки)

Вот мы объявляем
C++
1
2
3
#include <iostream>
#ifndef STRING_H_
#define STRING_H_
Уже не редко встречаю такое включение string.h Просто хотел бы уточнить.Я так понимаю с++ компилятор сам преобразует
string.h в define STRING_H_
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2013, 12:53     Объяаление #ifndef STRING_H_
Посмотрите здесь:

#ifndef и #include - C++
Допустим, я создал класс #ifndef SOMECLASS_H #define SOMECLASS_H class SomeClass{}; #endif Есть несколько вопросов.

Директива #ifndef - C++
Здравствуйте! Есть такой код: #define lastVersion #ifndef lastVersion #include &lt;version1.h&gt; int main() { ClassA A; ...

Почему отказались от #ifndef? - C++
Всем привет, Лафоре пишет, что от использовании директивы #ifndef стали отказываться в пользу #if !defined(). Может кто-нибудь объяснить...

Команды #ifndef #ifdef и #endif - C++
Помогите разобраться с командами #ifndef #endif и #ifndef в книге все как то не понятно объяснено или же лучше если у кого то есть видео на...

Назначение директив препроцессора: #ifndef, #define, #endif - C++
Объясните, что обозначают эти директивы? Заем это использовать в классах? #ifndef myclass #define myclass class someclass { ...

Объясните, в чем суть директив #ifndef/#define/#endif - C++
Не понял в чем суть директив: #ifndef .. #define.. #endifОбъясните пожалуйста..это как - то связано с хедерами, но вот как ??

Как влияет inline и обертка(#ifndef #define #endif) .h файла на компоновщик. - C++
Есть файл Point.h: #ifndef POINT_GUARD #define POINT_GUARD ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,165
Завершенные тесты: 2
15.06.2013, 13:44     Объяаление #ifndef STRING_H_ #2
это устаревшая форма защиты от повторного включения файла,
C++
1
2
#ifndef STRING_H_ //если не определен string.h
#define STRING_H_ //определить string.h
+ должен быть
C++
1
#endif
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
15.06.2013, 13:49     Объяаление #ifndef STRING_H_ #3
Цитата Сообщение от Кудаив Посмотреть сообщение
это устаревшая форма защиты от повторного включения файла,
кто сказал?
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,165
Завершенные тесты: 2
15.06.2013, 13:52     Объяаление #ifndef STRING_H_ #4
Croessmah, а разве нет?
C++
1
#pragma once
по-новее и по-удобнее
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
15.06.2013, 14:03     Объяаление #ifndef STRING_H_ #5
Цитата Сообщение от Кудаив Посмотреть сообщение
по-новее и по-удобнее
может обрабатываться по разному в разных компиляторах или вообще отсутствовать
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,165
Завершенные тесты: 2
15.06.2013, 14:20     Объяаление #ifndef STRING_H_ #6
ну вообще отсутствовать - не слышал
Borkot
4 / 4 / 0
Регистрация: 05.05.2012
Сообщений: 183
Записей в блоге: 1
15.06.2013, 14:44  [ТС]     Объяаление #ifndef STRING_H_ #7
Спасибо
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
15.06.2013, 15:19     Объяаление #ifndef STRING_H_ #8
#pragma once — нестандартная, но широко распространенная препроцессорная директива
Кстати тут: http://ru.wikipedia.org/wiki/Pragma_once , сказано что именно #pragma once считается устаревшей!


"This is called `#pragma once', and was used in addition to the `#ifndef' conditional around the contents of the header file. `#pragma once' is now obsolete and should not be used at all."
http://gcc.gnu.org/onlinedocs/gcc-2....pp_1.html#SEC8
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,009
15.06.2013, 15:28     Объяаление #ifndef STRING_H_ #9
Цитата Сообщение от lazybiz Посмотреть сообщение
"This is called `#pragma once', and was used in addition to the `#ifndef' conditional around the contents of the header file. `#pragma once' is now obsolete and should not be used at all."
http://gcc.gnu.org/onlinedocs/gcc-2....pp_1.html#SEC8
А еще древнее доки нельзя было найти?) Эти на gcc версии 2.95, сейчас последняя 4.8.1, при этом уже с версии 3.4.
File handling in the preprocessor has been rewritten. GCC no longer gets confused by symlinks and hardlinks, and now has a correct implementation of #import and #pragma once. These two directives have therefore been un-deprecated.
http://gcc.gnu.org/gcc-3.4/changes.html
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2013, 15:33     Объяаление #ifndef STRING_H_
Еще ссылки по теме:

Нюансы синтаксиса: #pragma once и ifndef define endif это одно и тоже? - C++
Я недопонял #pragma once и ifndef define endif это одной и тоже?

Ifndef-define-endif - C++ Qt
Qt Creator по умолчанию создаёт хэдер любого класса с подобной шапкой: #ifndef MYCLASS_H // ЭТО #define MYCLASS_H // И ЭТО ...

#ifndef #endif и extern - Visual C++
#ifndef #endif и extern Как применять эти директивы и зачем они? без них обходился и раньше, но в чужом коде их увидел. ...

Прекомпил в яве вроде ifndef - Программирование Android
Гуру! Помогите! Есть ли аналоги команды ifndef из с++? Пишу коллекцию классов вроде фреймворка и хочу предусмотреть режим с...

Странное предупреждение при использовании #ifndef-#endif - Visual C++
Создаю заголовочный файл: #ifndef EXAMPLE_H #define EXAMPLE_H bool Abrakadabra(int a); #endif Фрагмент кода &quot;bool&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
15.06.2013, 15:33     Объяаление #ifndef STRING_H_ #10
То что директива не стандартна остается фактом.
Yandex
Объявления
15.06.2013, 15:33     Объяаление #ifndef STRING_H_
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru