Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1

Локальные переменные в функции и её аргумент

25.09.2012, 09:29. Показов 767. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет!
Пишу функцию перевода десятичного числа в текст (не обсуждайте зачем и правильно ли я делаю)
Суть такова, начало функции:
C++
1
2
3
4
5
6
7
8
9
void printFixedPoint(char* buffer, float data, int sign){
    float fval, dfval;<<вход: data=55.0
    int ival;
    dfval=10.0;  //        <<data=55.0
    while (fval>=1.0)
    {
        ival=9;
        fval=9*dfval;//<<fval=90.0 и при этом ВНИМАНИЕ!!! 
               //изменилась data=90.0
Почему аргумент функции внезапно принял значение локальной переменной? Порча стека???
MSVS2008

Добавлено через 2 минуты
опасения подтвердились. Адрес fval равен адресу data

Добавлено через 1 минуту
Но почему???? Это ж разные переменные? Одна - аргумент функции, другая локальная в функции?

Добавлено через 5 минут
у меня включён был Release. Поменял на Debug - адреса переменных стали разными.
В чём причина? Хитрый оптимизатор MSVS решил доказать, что он умнее меня и мне нужны не две, а одна переменная?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.09.2012, 09:29
Ответы с готовыми решениями:

Пропадают локальные переменные функции после первого запуска функции
Я написал код для расчёта электрического кольца. Я постепенно упрощаю схему параллельными и последовательными операциями. Вот мой код: (...

Локальные, глобальные переменные и функции
Есть массив типа char. char b; Он заполнен нулями и единицами. b находится в main. Нужно вывести на консоль b в ф-ции main, но уже в...

Передать локальные переменные другой функции
Есть функция (допустим, main), в ней объявлены локальные переменные. Есть другая функция, к которой обращается main. Эта функция (func) по...

1
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
25.09.2012, 09:45
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Почему аргумент функции внезапно принял значение локальной переменной? Порча стека???
MSVS2008
Добавлено через 2 минуты
опасения подтвердились. Адрес fval равен адресу data
А ты что используешь где то data ??? нет.
вот компилятор и решил поставить на её место fval чтобы размер стека не раздувать
оптимизация, однако
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.09.2012, 09:45
Помогаю со студенческими работами здесь

Локальные переменные
Подскажите, пожалуйста, как использовать локальные переменные неких методов в других методах?

Локальные переменные
Как мне сделать переменную, которая является параметром функции, локальной? короче, наглядный пример: Function(value1, value2) код ...

Локальные переменные
def tozero a=gets.to_i if a&gt;0 a=a-1 p a tozero end end tozero

Локальные переменные
У меня вопрос такой, есть две процедуры, где одна вызывает другую, обе содержат локальные переменные с одинаковыми именами, глобальных...

Локальные переменные
Добрый день. В Java в частности и в программировании новичок. На интерактивном курсе(учусь на BA) застрял на таске: Есть объект: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru