![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
|
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 2 Всего: 306 |
SABROG, без скобок мягкотелый ругаетсо. оно и ясно.
Добавлено через 3 минуты и 26 секунд Борману тоже не нравится |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
a оно скомпилится ?! |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 4 Всего: 91 |
Нет, гнутый тоже плюётся. Странно, что такому детей тут учат http://users.msu.dubna.ru/~ovg/c++course/p1-3.html |
|||
|
||||
| zim22 |
|
||||||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
Пример из MSND
У меня есть подозрение, что это разные ситуации. В первом случае
происходит инициализация переменной (copy-initialization), при которой подразумевается использование знака равенства. инициализация же не является присвоением. во втором же
вызывается оператор присвоения. Это сообщение отредактировал(а) zim22 - 2.3.2009, 14:19 |
||||||
|
|||||||
| SABROG |
|
||||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 4 Всего: 91 |
А гнутый такое не хавает:
А такое хавает
Это сообщение отредактировал(а) SABROG - 2.3.2009, 14:37 |
||||||
|
|||||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
ага, разные и тут в статье правильно написано а вот ниже, имхо, немножко вводят заблуждение :
не знаю как на Си, a на С++ подобный пример даст UB. Это сообщение отредактировал(а) mes - 2.3.2009, 14:39 |
||||
|
|||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
с чего бы? а должен, может я знаю что я делаю и мне надо именно так. а почему нет? |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 4 Всего: 91 |
Наверное, все-таки не должен, т.к. возникает двойная трактовка. Приходится ему явно говорить мол "Вась, это не декларация" В общем вот что получается:
Это сообщение отредактировал(а) SABROG - 2.3.2009, 15:17 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
vinter, это из той же оперы которую мы на днях обсуждали. В данном случае запятая есть разделитель аргументов, а не operator ,(); а в функции порядок вычисления аргументов стандартом не определяется и следовательно хотя бы одноразовое изменение и двойное употребление одной и той же переменной ведет к UB. потому что в декларации "," это тоже не operator,() , так же как "=" в декларации это не присваивание. Это сообщение отредактировал(а) mes - 2.3.2009, 15:23 |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
||||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
ну и что толку от них ?! откуда взять уверенность, что первым посчитается 1й параметр, а не 2й или 3й ? Добавлено @ 16:01 вот запустил такой тестик на gcc
выдает: 4 10 5 6 чем и оправдывает "предположение" (расчет аргументов происходит в обратном порядке..) Это сообщение отредактировал(а) mes - 2.3.2009, 16:03 |
|||
|
||||
| vinter |
|
||||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
там нет никаких 1,2,3,4 параметров. Там есть один большой параметр - скобка Добавлено через 3 минуты и 28 секунд mes, ты вообще не то сделал. вот так вызывай
|
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
это помоему локальное присвоение - аргумент по умолчанию. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |