![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
ой, мозоль уже набили, да накакать на троллей, как и на гугл, как и на мотороллу, если они неправы. Не верьте никому, выбирайте правильные ориентиры. Я никогда не признаю моторолловские "не используйте пространства имен", гугловские и троллтечные регистры имен файлов, когда дело касается имен классов в них содержащихся, про исключения вообще молчу. |
|||
|
||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
а "1 " должен соблюдат
это Вы про C++ ? тогда 1. Чем в таком случае "1" отличается от "0" ? 2. Почему (в Cpp) не работает конструкция : int * i = (int)(void*) 1; ![]() Добавлено через 4 минуты и 24 секунды
![]() всегда надо обдумывать почему введено то и другое правило ? Зачастую эти ограничения приводят к некоторой ущербности, но делают это для того, чтоб так называемо "облегчить" жизнь программисту. имхо, одна из причин, чтоб не было проблем со стыковкой с неграмотно написанным кодом, как например в случае с констанстностью. Проще ведь запретить использовать, чем научить использовать правильно ![]() ![]() |
||||
|
|||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Ну.. что значит преобразование. Если 0 используется в контексте любого указателя плюсовый компилятор обязан его интерпретировать как нулевой указатель нужного типа. Ну, я ж написал, что "полуофтоп". Вроде и по теме - но никому ничего этим доказать я само собой не собирался (ибо да, я понимаю, по большому счёту это не аргумент). Лично моё предпочтение к 0 вместо NULL обуславливается двумя причинам: 1. Субъективная: меня раздражают идентификаторы в стиле ALL_IN_UPPER_CASE ![]() 2. Объективная (хотя и не столь уж важная): если у нас есть хидер класса, которому (с точки зрения простой логики) не нужны никакие инклюды, мы хотим указать значение по умолчанию в качестве нулевого указателя в каком-либо методе, то.. Для NULL придётся добавить инклюд на cstddef/stddef.h. Добавлено через 1 минуту и 29 секунд mes, перечитал два раза твой пост - и так не понял, на какой ты "стороне"? ![]() |
|||
|
||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
таки int ;)
2, 4, 8 на моем core2duo, x86_64, gcc 4.3.2 Добавлено через 4 минуты и 54 секунды
возможно это в стандарте, но это + к списку граблей с т. з. грамматики языка и к тому же нелогично 0 - это целое число, а множество значений адресов, формально говоря, не является надмножеством целых чисел ;) -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
0 - это нечто страшное ![]() Да, это косяк стандарта, на мой взгляд. Именно потому было предложение про nullptr. Текущие решения ИМХО оба костыльны. Впрочем, целые числа и логический тип (по идее) тоже не должны пересекаться - в С++ здесь лучше (чем в С - впрочем для С это как раз не минус, ибо другой уровень, другое мышление), новполне возможен неявный кастинг.. Да-да, полтора года работы на шарпе дают о себе знать... |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
в обычном (ansi) C bool'а нет, так что что там будет пдразумеваться под bool зависит от программиста ;) -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Да, я знаю. И это плохо
![]() В С++ же он есть - и это хорошо. Но неявный кастинг из чисел - это плохо ![]() |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
ничего не каститься, возвращается int а вот семантика if (...) и аналогов использует значения 0 и не 0 и это абсолютно независимые вещи ;) а вот в C++ идет как раз каст в bool -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Ээ.. ну я и говорю про С++.
Это речь про С. Про С++. "Но" к последней фразе. Тоже про С++. Сорри, если неясно выразился ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |