С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

приведение типов указателей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ signal.h http://www.cyberforum.ru/cpp-beginners/thread807099.html
Доброго времени суток! Начал разбираться с сигналами и понял что как работать с ними под windows мало литературы... так вот, у меня есть код: // showarg.cpp: определяет точку входа для консольного...
C++ Debug assertion failed Во время отладки вылазит такая ошибка,не могу понять в чём дело http://www.cyberforum.ru/cpp-beginners/thread807091.html
C++ Динамический массив с большим количеством элементов
Нужно создать динамический массив (каждый элемент целое положительное число до 10^9), который по введенным данным создавал N элементов массива, где N может быть до 10^5. unsigned long int *arr...
вызов конструктора C++
Здарова! Есть допустим класс: class Str { Str(); Str(Str&); Str(char*); };
C++ Где ошибка? Чтение массива из файла http://www.cyberforum.ru/cpp-beginners/thread807062.html
Пишу программу которая читает вектор и массив из файла. После чего перемножает вектор на массив (получается в итоге вектор). причем отправка на кластеры происходит по столбцам. Но прога да же...
C++ Как такое может быть? (вызов функции-члена без объекта) собственно вопрос озвучен. #include <iostream> using namespace std; class Test { public: void print() { подробнее

Показать сообщение отдельно
ValeryS
Модератор
6729 / 5138 / 485
Регистрация: 14.02.2011
Сообщений: 17,254
13.03.2013, 02:49
Цитата Сообщение от Алексей89 Посмотреть сообщение
1. Что такое union и чем оно отличается от struct?
это объединение
попробую своими словами
если ты напишешь так
C++
1
2
3
4
5
6
7
union
{
int i;
char c[4];
}myUnion;
 
myUnion mU;
то переменная mU в памяти будет занимать 4 байта( я говорю о 32 разрядных ОС) что равно одному int или 4 char

теперь ты можешь записать int
C++
1
mU.i=123456;
и посмотреть чему равен 3 байт
C++
1
printf("%x",mU.c[2]);

Цитата Сообщение от Алексей89 Посмотреть сообщение
оно отличается от struct?
всем, кроме описания (описания похожи)
во первых структура занимает память равную сумме её членов а объединение сколько занимает самый большой
во вторых в структуре каждый член отдельно а в объединении это одно и тоже
грубо говоря это разные представления памяти

но если тебе нужен массив то проще было сделать так
C++
1
2
3
4
5
6
7
8
unsigned int n=123456;
unsigned char bt[32];
 
for(int i=0;i<32;i++)
  {
   bt[i]=n%2;
   n/=2;
  }
Добавлено через 1 минуту
Цитата Сообщение от Алексей89 Посмотреть сообщение
Невозможность побитного использования памяти (за исключением битовых полей) исходит от ОС или от архитектуры процессора?
От процессора следовательно от ОС
есть микроконтроллеры которые позволяют работать с битами и там в С есть тип bit

Добавлено через 20 минут
про объединения
http://www.c-cpp.ru/books/obedineniya
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.