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

Как работает оператор typedef - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ создать меню http://www.cyberforum.ru/cpp-beginners/thread104323.html
помогите создать меню в ВС+ с такими пунктами about edit Show prog run exit
C++ Найти окно по типу отображения Здраствуйте. Подскажите, пожалуйста, какой функцией можно найти окно в винде, параметр отображения которого TOPMOST, т.е. поверх всех окон? http://www.cyberforum.ru/cpp-beginners/thread104316.html
Робота с строками в С++ C++
Есть строка символов, і ее нузно развернуть, от код, подскажите, потому что выдает ошибку char*str1; cout<<"\nvvedit 1\n"; cin>>str1; int i2=strlen(str1); cout<<i2; for (int i = i2; i>=0; i--)
Моделирование заполнения гибкого диска C++
Помогите составить программу, моделирующую заполнение гибкого магнитного диска. Общий объем памяти на диске 360 Кбайт. Файлы имеют произвольную длину от 18 байт до 32 Кбайт. В процессе работы файлы либо записываются на диск, либо удаляются с него. В начале работы файлы записываются подряд друг за другом. После удаления файла на диске образуется свободный участок памяти, и вновь...
C++ Выполнить преобразование массива http://www.cyberforum.ru/cpp-beginners/thread104303.html
Помогите пожалуйста!!!!!!!! Постановка задачи 1. Сформировать массив заданной размерности с помощью датчика случайных чисел (n задается пользователем с клавиатуры). 2. Распечатать полученный массив. 3. Выполнить преобразование массива в соответствии с условием. 4. Вывести полученный результат Условие: 1. Дана квадратная матрица порядка N. Вычислить среднее арифметическое положительных...
C++ автоматизация научного эксперимента Здравствуйте. Мне нужно написать программу с графич. интерфейсом , которая взаимодействует с внешними устрйствами (АЦП, ЦАП и т.д.) в режиме реального времени. Какими средствами лучше делать? С чего лучше начать? подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
17304 / 5552 / 347
Регистрация: 30.03.2009
Сообщений: 15,111
Записей в блоге: 26
14.03.2010, 11:34     Как работает оператор typedef
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Это позволяет достичь более короткой формы записи.
Необязательно более короткой. Можно, например, более понятную запись. Известно, что в языке Си размеры типов неспецифецированы. Иногда это крайне неудобно, потому что для большого класса задач нужны такие понятия как "целый тип размером в 2 байта", "целый тип размером в 4 байта" и т.п., а потому при использовании базовых типов неудобно писать переносимые программы. Такое обычно так же разруливают через typedef'ы. Обычно заводят файл с описаниями типов, где в зависимости от host-платформы их определяют тем или иным способом (макросы типа __MSDOS__ и __WINDOWS32__ обозвал условно):

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifdef __MSDOS__
/* Настройка типов для 16-разрядных систем */
typedef char int8_t;
typedef int int16_t;
typedef long int32_t;
typedef struct { int32_t hi, lo; } int64_t;
#elif (defined __linux__ && ! defined _NP64) || (defined __WINDOWS32__)
/* Настройка типов для 32-разрядных систем */
typedef char int8_t;
typedef short int16_t;
typedef int int32_t;
typedef long long int64_t;
#else
/* Настройка типов для 64-разрядных систем */
typedef char int8_t;
typedef short int16_t;
typedef int int32_t;
typedef long int64_t;
#endif
И далее везде пользуются типами int8_t, int16_t, int32_t, int64_t. Если мы начинаем работать на какой-то системе, где размеры базовых типов устроены по другому, то мы просто заведём для этой системы свой набор typedef'ов и не будем трогать весь остальной код

Добавлено через 3 минуты
Цитата Сообщение от МедведЪ Посмотреть сообщение
Day, они же как то объясняются компилятору что и как?почему компилятор думает что тут ошибка?
C++
1
for(int i=0;i++)
потому что ему сказано что там должно быть совершено 3ье действие...так откуда же взять код typedef-a
Пока ты внятно вопрос не поставишь, врядли кто-то тебе на него ответит. typedef просто ОБЪЯВЛЯЕТ новый (пользовательский) тип. Больше он ничего не делает. Объявление типа (как и вообще любой тип) в код НЕ преобразовывается, потому как тип - это свойство языка программирования. В процессоре нет понятия типа. Правда если быть на 100% корректным, то есть некоторые защищённые архитектуры, в которых вводится аппаратное понятие типа, но все подобные архитектуры постфакутм являются неудавшимися экспериментами и покоятся в помойке
 
Текущее время: 19:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru