Какова основная цель доступа к данным через адрес указателя с использованием reinterpret_cast. Это быстрее, если да, то как именно?
Ниже приведена программа, которая печатает те же данные структуры через файлы . оператор и через указатель (переосмысление приведения).
#include <iostream>
using namespace std;
struct values{
int one;
int two;
char three;
int four;
};
int main()
{
values v { 8, 5, 'k', 653};
// access via . (or ->) operator
cout << v.one << endl;
cout << v.two << endl;
cout << v.three << endl;
cout << v.four << endl;
//via pointer access - how can this be beneficial?
values* vPtr = &v;
int* intPtr = reinterpret_cast<int*>(vPtr);
cout << *intPtr << endl;
intPtr++;
cout << *intPtr << endl;
intPtr++;
char* charPtr = reinterpret_cast<char*>(intPtr);
cout << *charPtr << endl;
charPtr += 4;
int* intPtr2 = reinterpret_cast<int*>(charPtr);
cout << *intPtr2<< endl;
return 0;
}
reinterpret_cast
может быть медленнее - person MSalters   schedule 08.01.2018int
объекту черезint
lvalue - person M.M   schedule 08.01.2018