Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: #ifndef XXX vs #if !defined(XXX)  (Прочитано 9315 раз)
0 Пользователей и 5 Гостей смотрят эту тему.
diper
Гость
« : 16-06-2006 19:14 » 

В одной из рекомедации по стилю оформления исходников есть такая, что лучше использовать
Код:
#if !defined(XXX)
вместо
Код:
#ifndef XXX

Чем это могло быть вызвано?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 16-06-2006 20:11 » 

я всегда пользуюсь

#ifndef XXX

#ifdef XXX

 - ни разу не подвело Улыбаюсь
Записан

Михалыч
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 17-06-2006 08:41 » 

Я могу только предположить - одним из доводов подобной рекомендации, могло бы быть предположение, что конструкция вида
#if !defined(XXX)
на первый взгляд выглядит более читабельной и понятной, чем
#ifndef XXX
Хотя, я лично, тоже все время пользуюсь парой
#ifndef XXX
#ifdef XXX
Записан

Поживем - увидим... Доживем - узнаем... Выживу - учту  Улыбаюсь
acc15
Гость
« Ответ #3 : 20-06-2006 03:53 » new

#if !defined(XXX) позволяет добавлять дополнительные условия при помощи операторов && и ||, что иногда может понадобится в будующем, если проект большой, а так же использовать с нормальной читабельностью условие #elif. Согласитесь выглядит немного кривовато:
Код:
#ifdef TESTM
  int testm;
#elif !defined(TESTM) && defined(TESTB)
  bool testb;
#endif

А так я впринципе тоже всегда пользуюсь #ifndef,#ifdef по одной причине - потому что короче пишется... Да и мне кажется проблемм с читабельностью у этих пар нету (если конечно со зрением всё нормально) т.к. обнаружить отсутствие одной буквы (при нормальном выравнивании) можно даже тогда когда просто пробегаешь глазами по коду. Другое дело это опечатки - когда забыл дописать букву 'n', тогда появляются 'неопознанные ошибки'. Бывает редко, но бывает.
« Последнее редактирование: 17-12-2007 17:43 от Алексей1153++ » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines