Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Странности компилятора Borland-а  (Прочитано 3482 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Analyzer
Гость
« : 27-12-2004 18:33 » 

В процессе написания маленькой утилитки наткнулся на такую странную особенность компиляторов от Borland-а. При запуске такого кода:

char str[256];
strcpy( str, "123456789" );
sprintf( str, "%s qwerty\n", str);
printf( str );

получаю результат " qwerty", а на других компиляторах, которые находились под рукой (MSV6, gcc 3.3.1) -  результат "123456789 qwerty", имхо более ожидаемое. А если использовать такую конструкцию:

sprintf( tmp, "%s qwerty\n", str);
printf( tmp );

тогда все работает как надо. Так вот какое же поведение компилятора, считать правильным?
Записан
Serega
Гость
« Ответ #1 : 27-12-2004 22:42 » 

Возможно в борладне буфер сначала очищается, поэтому и возникает такая ситуация
надо смотреть код на асме
Записан
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 28-12-2004 10:00 » 

По стандарту С порядок вычисления аргументов функции не определён.  Поэтому называть поведение компилятора "странным" я бы не стал. 
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines