Форум программистов, компьютерный форум CyberForum.ru

операторы преобразования типов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычисление факториала http://www.cyberforum.ru/cpp-beginners/thread25247.html
Нужно заставить программу выводить результат, но почему то не получается #include <stdio.h> #include <conio.h> int f(int); void main() { double C; int m, n, z;
C++ Копирование с класса в класс Админы удалите топик, нечайно создал.... протупил.. http://www.cyberforum.ru/cpp-beginners/thread25232.html
Вычисление разности двумерных массивов. C++
Дано два произвольны двумерных массива A,B с одинаковыми размерностями. Нужно написать функцию нахождения разности их элементов. Сама задача проста но возникает ряд проблем =). 1)Как сделать чтобы размерность массивов мог задавать пользователь? 2)Как в теле функции int mass(int *x,int *y,int dim1,int dim2) создать двумерный массив Z размерностью Z? 3)Как возвратить рещультатом функции mass...
Одномерные массивы C++
В векторе из 20 элементов переставить элементы так, чтобы сначала располагались все отрицательные элементы, а после этого все другие элементы, без нарушения порядка их следования. Даже не знаю с чего начать,помогите пожалуйста
C++ Системные требования http://www.cyberforum.ru/cpp-beginners/thread25150.html
В условии задачи есть ограничение: 20 секунд на тест (компьютер класса Celeron-315, 1 Gb RAM) Как узнать, сколько программа использует памяти, и вообще, какие для какой-нибудь программы должны быть минимальные системные требования?
C++ Ошибки при компиляции в ТС 3.0 День добрый. Возникла такая проблема. Создается проект на Turbo C 3.0. В проект включается много отдельных файлов, как *.C, так и внешних библиотек (*.lib). В некоторых файлах происходит подключение дополнительных модулей (стандартных и извне) и т.д. и т.п. Так вот. При компиляции проекта, все файлы компилируются без проблем. При запуске MAKE выдается множество ошибок следующего... подробнее

Показать сообщение отдельно
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
07.03.2009, 00:51     операторы преобразования типов
По типу переменной и определяется. У тебя же компилятор, а не ассемблер. Он еще на стадии компиляции посмотрит типы, запишет, какая функция будет вызвана. Так что, не думай, что все это динамически в памяти происходит в твоем примере.
В итоге, программа выглядит просто:
Assembler
1
2
3
4
5
0x8048719 <main+25>:    call   0x8048790 <_ZN3CatC1Ev> ;вызов конструктора
0x804871e <main+30>:    lea    -0x14(%ebp),%eax
0x8048721 <main+33>:    mov    %eax,(%esp)
0x8048724 <main+36>:    call   0x80487a4 <_ZN3CatcviEv> ;вызов функции int()
0x8048729 <main+41>:    mov    %eax,-0x10(%ebp) ;результат в переменную
Ничего сверхъестественного. Компилер увидел тип твоей переменной и сам подставил вызов функции.
В случае с char, результат, наверное, зависит от компилятора и опций компиляции. char ведь то же самое число в памяти. В моем случае была вызвана та же функция int(), был взят младший байт числа и записан в переменную char. Число 192 легко помещается в 1 байт, поэтому в итоге мы имеем символ с кодом 192.
 
Текущее время: 23:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru