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

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

Восстановить пароль Регистрация
 
Borkot
 Аватар для Borkot
4 / 4 / 0
Регистрация: 05.05.2012
Сообщений: 182
Записей в блоге: 1
15.06.2013, 12:53     Объяаление #ifndef STRING_H_ #1
Вот мы объявляем
C++
1
2
3
#include <iostream>
#ifndef STRING_H_
#define STRING_H_
Уже не редко встречаю такое включение string.h Просто хотел бы уточнить.Я так понимаю с++ компилятор сам преобразует
string.h в define STRING_H_
Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кудаив
328 / 405 / 24
Регистрация: 27.05.2012
Сообщений: 1,162
Завершенные тесты: 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
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
15.06.2013, 13:49     Объяаление #ifndef STRING_H_ #3
Цитата Сообщение от Кудаив Посмотреть сообщение
это устаревшая форма защиты от повторного включения файла,
кто сказал?
Кудаив
328 / 405 / 24
Регистрация: 27.05.2012
Сообщений: 1,162
Завершенные тесты: 2
15.06.2013, 13:52     Объяаление #ifndef STRING_H_ #4
Croessmah, а разве нет?
C++
1
#pragma once
по-новее и по-удобнее
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
15.06.2013, 14:03     Объяаление #ifndef STRING_H_ #5
Цитата Сообщение от Кудаив Посмотреть сообщение
по-новее и по-удобнее
может обрабатываться по разному в разных компиляторах или вообще отсутствовать
Кудаив
328 / 405 / 24
Регистрация: 27.05.2012
Сообщений: 1,162
Завершенные тесты: 2
15.06.2013, 14:20     Объяаление #ifndef STRING_H_ #6
ну вообще отсутствовать - не слышал
Borkot
 Аватар для Borkot
4 / 4 / 0
Регистрация: 05.05.2012
Сообщений: 182
Записей в блоге: 1
15.06.2013, 14:44  [ТС]     Объяаление #ifndef STRING_H_ #7
Спасибо
castaway
Эксперт С++
4838 / 2977 / 367
Регистрация: 10.11.2010
Сообщений: 11,010
Записей в блоге: 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
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
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_
Еще ссылки по теме:

C++ #ifndef и #include
Android Прекомпил в яве вроде ifndef

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

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

Текущее время: 00:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru