Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
redbird
0 / 0 / 0
Регистрация: 23.02.2014
Сообщений: 9
#1

Почему отказались от #ifndef? - C++

23.02.2014, 18:52. Просмотров 433. Ответов 5
Метки нет (Все метки)

Всем привет, Лафоре пишет, что от использовании директивы #ifndef стали отказываться в пользу #if !defined().
Может кто-нибудь объяснить почему?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2014, 18:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему отказались от #ifndef? (C++):

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

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

Объяаление #ifndef STRING_H_ - C++
Вот мы объявляем #include <iostream> #ifndef STRING_H_ #define STRING_H_ Уже не редко встречаю такое включение string.h Просто...

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

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

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

5
redbird
0 / 0 / 0
Регистрация: 23.02.2014
Сообщений: 9
01.03.2014, 23:08  [ТС] #2
up.
0
DrOffset
7506 / 4502 / 1023
Регистрация: 30.01.2014
Сообщений: 7,362
02.03.2014, 01:30 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от redbird Посмотреть сообщение
от использовании директивы #ifndef стали отказываться в пользу #if !defined().
Честно говоря не особо такое замечал. Одинаково попадается и то и это. Можно предположить, что !defined просто более декларативно.
Сложные условия можно писать проще:
C++
1
#if defined (A) && !defined (B)
1
Evg
Эксперт CАвтор FAQ
18694 / 6660 / 469
Регистрация: 30.03.2009
Сообщений: 18,645
Записей в блоге: 29
02.03.2014, 11:12 #4
Цитата Сообщение от redbird Посмотреть сообщение
стали отказываться
Враньё
1
Убежденный
Ушел с форума
Эксперт С++
15794 / 7231 / 1138
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
02.03.2014, 13:19 #5
Думаю, что визуально ifndef легче спутать с ifdef.
А вот у "if !defined" явно заметный восклицательный знак слева.
1
programina
2046 / 601 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
02.03.2014, 13:25 #6
Я не отказывалась, в каждом хэдере пишу:
C++
#ifndef HEADER_H
#define HEADER_H
// ...
#endif
0
02.03.2014, 13:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2014, 13:25
Привет! Вот еще темы с ответами:

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

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

Отказались от обслуживания спецов по сайту - появились проблемы - Joomla
Joomla Что то случилось -ошибки или ..... Отказались от обслуживания спецов по сайту.После чего пропали посетители....глючат списки и...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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