Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2011, 21:29   #11
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
Аргументируйте.
http://www.google.ru/#sclient=psy-ab...w=1920&bih=923
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 18.12.2011, 21:37   #12
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Blade Посмотреть сообщение
Меня интересует мнение конкретного товарища.
Мнение мирового сообщества мне прекрасно известно.

Так же, если прогуляться по всем тем ссылкам, что вы любезно предоставили, можно увидеть некоторую закономерность:

1. Ссылки дублируют сабж друг друга.
2. Многие люди, как мартышки копируют мнение "авторитета", без понимания, "а почему это так, и это правильно" ?


Вопрос очень простой: почему использовать препроцессор в принципе плохо, и чем дефайновые константы уступают глобальным константам?

/зы подсказка: дефайновые константы так же, как и глобальные константы имеют тип.

Последний раз редактировалось _Bers; 18.12.2011 в 21:39.
_Bers вне форума Ответить с цитированием
Старый 18.12.2011, 21:40   #13
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

допустимость и вред
Код:
#define true false
известна?
и многое иное, что можно решить средствами которые контролирует язык.
Цитата:
дефайновые константы так же, как и глобальные константы имеют тип.
они имеют тип указанный в литерале(или автовыбор), а не явный тип.
Цитата:
и чем дефайновые константы уступают глобальным константам?
чем отличается синтаксическая замена(банально найти и заменить) от контролируемой замены?
и не дай бог, имя переменной/функции совпадает с именем дефайна...

так же дефайн глобален, и не может быть внесен в пространство имен.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 18.12.2011 в 21:43.
Пепел Феникса вне форума Ответить с цитированием
Старый 18.12.2011, 21:43   #14
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
допустимость и вред
Код:
#define true false
известна?
и многое иное, что можно решить средствами которые контролирует язык.
1. Идешки улавливают факт переопределения константы. На повышенном уровне ответственности, данный факт не позволит скомпилировать программу.

2. На с++ есть 100500 разных способов, как отстрелить себе ногу.

SomeClass* ptr = NULL;

ptr -> Do(); //крушение.

О боже! Пользоваться указателями нельзя в принципе! Можно запросто отстрелить себе ногу!

Так что ли?
_Bers вне форума Ответить с цитированием
Старый 18.12.2011, 21:45   #15
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
Меня интересует мнение конкретного товарища.
Мнение мирового сообщества мне прекрасно известно.
Мнение "конкретного товарища", если вы имеете ввиду меня, совпадает с мнением мирового сообщества.

Цитата:
Сообщение от _Bers Посмотреть сообщение
Так же, если прогуляться по всем тем ссылкам, что вы любезно предоставили, можно увидеть некоторую закономерность:

1. Ссылки дублируют сабж друг друга.
2. Многие люди, как мартышки копируют мнение "авторитета", без понимания, "а почему это так, и это правильно" ?
Если вас интересует почему это так плохо, по ссылкам которые я так любезно предоставил, это можно выяснить.
Если вы хотите проверить мое знание данного вопроса или еще чего-то, то его уже без вас проверяли, и не один раз, так что не беспокойтесь.
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 18.12.2011, 21:48   #16
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Blade Посмотреть сообщение
Мнение "конкретного товарища", если вы имеете ввиду меня, совпадает с мнением мирового сообщества.
Судя по критике примера, имеющего место в данной теме - ваше мнение ошибочно (вы не поняли, о чем толдычит мировое сообщество)
_Bers вне форума Ответить с цитированием
Старый 18.12.2011, 21:48   #17
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
1. Идешки улавливают факт переопределения константы. На повышенном уровне ответственности, данный факт не позволит скомпилировать программу.
IDE, не компилятор.
студия не запрещает этого.
GCC тоже.

препроцессор это отдельная ступень компиляции, и с самим компилятором вообще не связанна.(ну кроме того что это ступень компиляции)
Цитата:
2. На с++ есть 100500 разных способов, как отстрелить себе ногу.
сейчас речь о препроцессоре.
и в общем я о том что если есть возможность заменить фичу препроцессора фичей языка, то лучше поступить так.
единственное что я пока не вижу как можно заменить это условные дефайны в windows.h в зависимости от Юникода, ну и макросы некоторые.

PS: и указателями нужно уметь пользоваться.
Цитата:
Судя по критике примера, имеющего место в данной теме - ваше мнение ошибочно
попробуйте обьявить локальнгую переменную KOL, и посмотрите что будет.
с нормальными константами все будет работать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 18.12.2011 в 21:54.
Пепел Феникса вне форума Ответить с цитированием
Старый 18.12.2011, 21:51   #18
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
IDE, не компилятор.сейчас речь о препроцессоре.
и в общем я о том что если есть возможность заменить фичу препроцессора фичей языка, то лучше поступить так.
единственное что я пока не вижу как можно заменить это условные дефайны в windows.h в зависимости от Юникода, ну и макросы некоторые.

PS: и указателями нужно уметь пользоваться.попробуйте обьявить локальнгую переменную KOL, и посмотрите что будет.
с нормальными константами все будет работать.
Ответь на 3 вопроса, которые я задал товарищу Blade
_Bers вне форума Ответить с цитированием
Старый 18.12.2011, 21:52   #19
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
попробуйте обьявить локальнгую переменную KOL, и посмотрите что будет.
с нормальными константами все будет работать.
Не понял вопроса
_Bers вне форума Ответить с цитированием
Старый 18.12.2011, 21:58   #20
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Не понял вопроса
Код:
#define KOL 10

 void Foo(int val) { if( val==KOL) { std::cout<< "Урра!\n"; } }
 int main()
 {
    int KOL;//хочу локальную переменную с таким именем.
 Foo(10); 
 Foo(KOL);
 }
Цитата:
2. Если имеет место быть множеству единиц трансляции, каждой из которых требуется работать с едиными глобальными константами,
что тогда? Предлагаете утонуть в extern`нах?
const не требует extern.
Цитата:
Почему препроцессор - это в принципе плохо?
см посты 13 и 17.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как проще ее написать? 777pro777 Помощь студентам 4 25.10.2011 15:05
Как проще сравнивать даты? silvestr PHP 13 17.04.2011 22:24
может можно сделать проще??? Donatello Общие вопросы C/C++ 6 10.01.2011 19:09
Разворачивающиеся меню. Как проще? Web-Gangsta JavaScript, Ajax 4 05.05.2009 17:46
Можно ли проще сделать задачу на паскале? svobodys Помощь студентам 8 02.12.2008 19:53