Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Забавно... я в тупике =] 
:(
    Опции темы
Batou
  Дата 2.5.2005, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 7.4.2005

Репутация: нет
Всего: 5



Код

unsigned long ReadLong (void)
{
 unsigned long temp1,temp2;
 unsigned long temp3,temp4;

 temp1=ReadInt ();
 temp2=ReadInt ();

 return (temp3+(temp4*0x10000L));
}

by Martin van Velsen(из описания формата файла 3ds , Document Revision 0.93 - January 1997)

объясните мне - этот кусок кода работоспособен? у мя подозрения что нифига =0
--------------------
.GitS.Мысли творят действительность , а бремя доказательства лежит на сомневающемся.
PM MAIL WWW   Вверх
AISIN
Дата 2.5.2005, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 27.1.2005
Где: Пушкино

Репутация: нет
Всего: 1



Забавный код...
после unsigned long temp3,temp4;
temp3=3435973836
temp4=3435973836
дальше идет инициализация temp1 и temp2
а затем return ((3435973836+(3435973836*65536)),т. е. функция возвращает 2576927948
Хотя компилятор ругается
warning C4307: '*' : integral constant overflow
warning C4307: '+' : integral constant overflow
warning C4700: local variable 'temp3' used without having been initialized
,но прогу компилирует.
Код на моем компиляторе работать будет если ReadInt () не подкачает, но я бы так не делал.
----------------------------------
smile
--------------------
Внимание!!! Внимание!!!Запущена программа по завоеванию мира!!!Выполненно 0,000000000000000000000000000000000000000000000000000002%
PM MAIL   Вверх
Fire-Plug
Дата 2.5.2005, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 15.3.2005

Репутация: -1
Всего: 0



Цитата(Batou @ 2.5.2005, 17:32)
объясните мне - этот кусок кода работоспособен

Цитата(Batou @ 2.5.2005, 17:32)
unsigned long temp3,temp4;

Если считать нормой использование НЕ инициализированных локальных переменных temp3,temp4, то вполне работоспособен smile
ЗЫ: Непонятно только зачем инициализировать одни переменные, а для вычислений использовать другие
--------------------
Объясни другому - поймешь сам (Народная примета)
PM MAIL   Вверх
gepard
Дата 3.5.2005, 04:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2477
Регистрация: 29.2.2004

Репутация: 2
Всего: 40



Код

return (temp3+(temp4*0x10000L));

Какое-то тыкание пальцем в небо.
В temp3 и temp4 может лежать любое значение.


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
Nastya
Дата 3.5.2005, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 27.3.2002
Где: Мариуполь

Репутация: 5
Всего: 44



А почему бы ему не работать smile


--------------------
Что бы понять рекурсию, надо понять рекурсию

"Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор
PM MAIL   Вверх
Batou
Дата 3.5.2005, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 7.4.2005

Репутация: нет
Всего: 5



smile у меня все компилится и даже не заикается об ошибках... работает(тока неправильно=) нашел даже несколько других источников на ту же тему - код везде один. У ван Велсена похоже неплохо с чувством юмора... А я-то уже начал грешным делом думать забросить сишник и уехать в Тибет smile
--------------------
.GitS.Мысли творят действительность , а бремя доказательства лежит на сомневающемся.
PM MAIL WWW   Вверх
AISIN
Дата 3.5.2005, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 27.1.2005
Где: Пушкино

Репутация: нет
Всего: 1



Batou У компиляторов обычно несколько уровней диагностики.
На самом верхнем уровне компилятор начинает предираться к самым не значительным мелочам.
--------------------
Внимание!!! Внимание!!!Запущена программа по завоеванию мира!!!Выполненно 0,000000000000000000000000000000000000000000000000000002%
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0692 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.