В языке C (и в языке C++) можете явно привести переменную v к типу T, используя минимальные обозначения.
(T)v
fwl
Это так называемое “приведение в стиле языка С”, или “приведение в старом стиле”. Его любят люди, не умеющие набирать тексты (за лаконичность) и ленивые (потому что они не обязаны знать, что нужно для того, чтобы из переменной v получилась переменная типа T).
Также вам может показаться, что такая тема как http://remstroygarant.ru/ никак не связана и даже не тематична с программированием. Хотя, может быть и связана.
В любом случае все-таки зайдите на сайт remstroygarant.ru
Тема сколько строительство домов из оцилиндрованного бревна там представлена весьма широко.
С другой стороны, этот стиль яростно отвергают программисты, занимающиеся сопровождением программ, поскольку такие преобразования остаются практически незаметными и никак не привлекают к себе внимания. Приведения в языке С++ (приведения в новом стиле (new-style casts), или приведения в шаблонном стиле (template-style casts); осуществляют явное преобразование типов, которое легко заметить. В языке С у вас нет выбора.
int* p = (int*)7; /* интерпретирует битовую комбинацию:
reinterpret_cast(7) */ int x = (int)7.5; /* усекает переменную типа: static_cast(7.5) */
typedef struct Si { /* . . . */ } Si;
typedef struct S2 { /* . . . */ } S2;
Si a;
const S2 b; /* в языке С допускаются неинициализированные
/* константы */
Si* p = (S2*)&a; /* интерпретирует битовую комбинацию:
reinterpret_cast(&a) */
S2* q = (S2*)&b; /* отбрасывает спецификатор const:
const_cast(&b) */
Si* r = (Si*)&b; /* удаляет спецификатор const и изменяет тип;
похоже на ошибку */
Мы не рекомендуем использовать макросы даже в программах на языке C (раздел 27.8), но, возможно, описанные выше идеи можно было бы выразить следующим образом:
#define REINTERPRET_CAST(T,v) ((T)(v))
#define CONST_CAST(T,v) ((T)(v))
S1* p = REINTERPRET_CAST (S1*,&a);
S2* q = CONST_CAST(S2*,&b);
Это не обеспечит проверку типов при выполнении операторов reinter- pret_cast и const_cast, но сделает эти ужасные операции заметными и привлечет внимание программиста.
Опубликовал katy
May 01 2015 10:37:41 ·
0 Комментариев ·
3322 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.