![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 19 Всего: 181 |
Недавно наткнулся на такую задачку, возможно кому-нибудь тоже будет интересно.
Имеется C/C++ код:
Вопрос: Может ли функция foo вернуть не 0, почему и от чего это зависит. Если кто знает, не пишите сразу решение, пусть другие немного подумают ![]() -------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
REZiaMIX |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
Придумал почему может , но это не то , что тут задумано))))
-------------------- ![]() |
|||
|
||||
ISergeyN |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 11.10.2008 Где: Україна Репутация: нет Всего: 2 |
здесь что-то с нулём связано так как
|
|||
|
||||
Kallikanzarid |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 240 Регистрация: 9.11.2008 Репутация: нет Всего: 3 |
Это задача математическая (3й класс), а не на С++
![]() x = -x => 2x = 0 => x = 0 Эрго, foo всегда будет возвращать 0, если только программа не выполняется на машине, где 0 - булева истина ![]() Это сообщение отредактировал(а) Kallikanzarid - 22.1.2009, 03:58 |
|||
|
||||
nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 19 Всего: 181 |
Люди, ну там же специально проверка стоит x != 0
![]() -------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
MastEdm |
|
|||
![]() Master ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 3.12.2005 Где: Москва, МГИУ Репутация: 1 Всего: 2 |
Может, если
потому что INT_MIN = –2,147,483,648, а INT_MAX = +2,147,483,647. Хотя зависит, наверное, от компилятора ![]() |
|||
|
||||
Alek86 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
все банально
если x - расшарена между 2мя потоками на запись, то ф-я может вернуть и 1 ![]() ЗЫ. все ж таки мы программисты, а не математики... Добавлено через 9 минут и 19 секунд хотя, если без приколов, то в стандарте вроде как не сказано, что INT_MIN не должен равняться INT_MAX... Это сообщение отредактировал(а) Alek86 - 22.1.2009, 11:59 |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
||||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
x передается через регистр или стек потока race'а нет
а где он равняется? ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
че то я не понял, почему INT_MIN == -INT_MIN?
|
|||
|
||||
Alek86 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
MAKCim, про гонки точно, протупил
вопрос не в том, где такое выполняется, а в том, запрещено ли это стандартом а вообще лично у меня все "нормальные" аргументы в пользу положительного ответа закончились. если INT_MIN == INT_MAX - неверно, то я выбираю ответ "нет, по стандарту C++ функция не может вернуть не 0" ![]() Добавлено через 2 минуты и 21 секунду
да, может, причем это не стандартизировано, то есть когда ОС захочет, тогда и прервет но тут оно не прокатит :( |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
||||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
задачка про баги С++ %)
|
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Это не баги а фичи, и не С++ а представления чисел в двоичном дополнительном коде ![]() |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
xvr, а в чем прикол? знак же дожен изменится, - должен сбросить старший разряд
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |