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

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

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

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

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

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

#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 в книге все как то не понятно объяснено или же лучше если у кого то есть видео на...

Почему не взяли на обучение в CQG, на сайте нашел испытательное задание, сделал и отослал. Не взяли и не объяснили почему. Хочу услышать мнения. - C++
/ Программа получает на вход текстовый файл и расшифровывает его первую строчку получая ключ. // #include "stdafx.h" ...

Почему MS-DOS не любит кириллицу ? (Или почему она не любит меня ?) - C++
Здравствуйте Почему MS-DOS не любит кириллицу ? У меня есть несколько консольных проектор различной сложности. Почти везде...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
redbird
0 / 0 / 0
Регистрация: 23.02.2014
Сообщений: 9
01.03.2014, 23:08  [ТС]     Почему отказались от #ifndef? #2
up.
DrOffset
7060 / 4201 / 949
Регистрация: 30.01.2014
Сообщений: 6,968
02.03.2014, 01:30     Почему отказались от #ifndef? #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от redbird Посмотреть сообщение
от использовании директивы #ifndef стали отказываться в пользу #if !defined().
Честно говоря не особо такое замечал. Одинаково попадается и то и это. Можно предположить, что !defined просто более декларативно.
Сложные условия можно писать проще:
C++
1
#if defined (A) && !defined (B)
Evg
Эксперт CАвтор FAQ
17547 / 5785 / 370
Регистрация: 30.03.2009
Сообщений: 15,934
Записей в блоге: 26
02.03.2014, 11:12     Почему отказались от #ifndef? #4
Цитата Сообщение от redbird Посмотреть сообщение
стали отказываться
Враньё
Убежденный
Системный программист
Эксперт С++
15298 / 6930 / 1096
Регистрация: 02.05.2013
Сообщений: 11,340
Завершенные тесты: 1
02.03.2014, 13:19     Почему отказались от #ifndef? #5
Думаю, что визуально ifndef легче спутать с ifdef.
А вот у "if !defined" явно заметный восклицательный знак слева.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2014, 13:25     Почему отказались от #ifndef?
Еще ссылки по теме:

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 Фрагмент кода "bool"...


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

Или воспользуйтесь поиском по форуму:
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
02.03.2014, 13:25     Почему отказались от #ifndef? #6
Я не отказывалась, в каждом хэдере пишу:
C++
#ifndef HEADER_H
#define HEADER_H
// ...
#endif
Yandex
Объявления
02.03.2014, 13:25     Почему отказались от #ifndef?
Ответ Создать тему
Опции темы

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