Russian Qt Forum
Ноябрь 22, 2024, 23:39
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
С/C++
>
Можно ли преобразовать struct в const char*?
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Можно ли преобразовать struct в const char*? (Прочитано 15787 раз)
Vld2
Гость
Можно ли преобразовать struct в const char*?
«
:
Декабрь 11, 2006, 23:26 »
Можно ли преобразовать struct (или указатель на структуру) в const char*?
Записан
Dendy
Гость
Можно ли преобразовать struct в const char*?
«
Ответ #1 :
Декабрь 11, 2006, 23:32 »
А Qt как ето касается?
Вообще всё можно, но только складьІвается мнение, что здесь ошибка на етапе проектирования. Какая задача-то?
Записан
Вячеслав
Гость
Можно ли преобразовать struct в const char*?
«
Ответ #2 :
Декабрь 12, 2006, 00:59 »
загнать структуру куда-нибудь ? и это куда-нибудь хочет const char* на входе?
Перегнать через void * ..... но не красиво и грабли кладем .....хотя работать будет..
Код:
struct a { char c;};
a *ptr;
const char *cPtr= (const char*)(void *)ptr;
Записан
Admin
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1988
Можно ли преобразовать struct в const char*?
«
Ответ #3 :
Декабрь 12, 2006, 09:04 »
вы еще про выравнивание структуры в памяти не забывайте
Записан
QCasper
Гость
Можно ли преобразовать struct в const char*?
«
Ответ #4 :
Декабрь 12, 2006, 14:40 »
Цитата: "Вячеслав"
загнать структуру куда-нибудь ? и это куда-нибудь хочет const char* на входе?
Перегнать через void * ..... но не красиво и грабли кладем .....хотя работать будет..
Код:
struct a { char c;};
a *ptr;
const char *cPtr= (const char*)(void *)ptr;
Чисто майкрософтовский подход
И потом, даже если это "куда-нибудь" хочет на входе чар пойнтер, представляю что оно вывалит на выходе, если передать ему структуру
Записан
Steven_Orko
Гость
Можно ли преобразовать struct в const char*?
«
Ответ #5 :
Декабрь 12, 2006, 22:22 »
Цитата: "Admin"
вы еще про выравнивание структуры в памяти не забывайте
присоединяюсь, а вообще есть reinterpret_cast
Записан
Vld2
Гость
Можно ли преобразовать struct в const char*?
«
Ответ #6 :
Декабрь 12, 2006, 23:29 »
Виноват, вернее надо преобразовать struct в const void*.
Записан
Вячеслав
Гость
Можно ли преобразовать struct в const char*?
«
Ответ #7 :
Декабрь 13, 2006, 00:01 »
Цитата: "QCasper"
Цитата: "Вячеслав"
загнать структуру куда-нибудь ? и это куда-нибудь хочет const char* на входе?
Перегнать через void * ..... но не красиво и грабли кладем .....хотя работать будет..
Код:
struct a { char c;};
a *ptr;
const char *cPtr= (const char*)(void *)ptr;
Чисто майкрософтовский подход
И потом, даже если это "куда-нибудь" хочет на входе чар пойнтер, представляю что оно вывалит на выходе, если передать ему структуру
Гы
Хош покажу серьезную железяку продающуюся за неслабые килоевры(итальянского производства) хде обмен сообщениями между частями комплекса построен именно так
ie первое поле структуры - тип,далее размер , а дальше - че бог на
Собственно для конкретных реализаций IMHO это возможный вариант работы ... но грабли уже лежат .... Хотя - "глупый наступает на грабли дабы получить по лбу, а умный - чтоб их поднять
" (c) непомню
И кстати- подход IBM'овский
времен 360-ых
Записан
bigirbis
Гость
Можно ли преобразовать struct в const char*?
«
Ответ #8 :
Декабрь 13, 2006, 10:48 »
Если не ошибаюсь, такие вещи в плюсах решаются наследованием. А такой подход еще с С растет.
Записан
Вячеслав
Гость
Можно ли преобразовать struct в const char*?
«
Ответ #9 :
Декабрь 14, 2006, 00:31 »
ПОдход имеет ноги более ранние чем С
Временами имеет место быть так-как плюсов нема,а С есть .... В общем - каждый сходит с ума по своему
Ради хохмы - тут одни вумники железку свою притаскивали ( типа дафайте дружить ) - так вот - у них обмен однокристалки с компом идет на скорости 300 бод
причем 1) сам кристалл летает на 7.32 Mhz 2) обмен построен на ХМL с кучей рющечек в виде namespac'ов и dtd - конфигурация заливалась примерно 4 минуты
3) Самое веселое
IHMO парсер XML занимает 80% кода
) Так-что вот
Записан
Vld2
Гость
Можно ли преобразовать struct в const char*?
«
Ответ #10 :
Декабрь 14, 2006, 07:38 »
Конвертация прошла успешна, за исключением того что в char записывает лишний символ.
struct mine
{ int i;
char[50];
}
Посылаю например "qt", а получаю "qtA" , где А - любой символ. Бывает дописывает даже 2 или 3 символа. Хотя посылаемый и получаемый размер одинаков. В чем может быть проблема? И как выравнивать структуру в памяти.
Записан
Вудруф
Гость
Можно ли преобразовать struct в const char*?
«
Ответ #11 :
Декабрь 14, 2006, 07:49 »
В таком варианте вам точно надо помнить про выравнивание.
Про \0 не забыли?
Записан
Vld2
Гость
Можно ли преобразовать struct в const char*?
«
Ответ #12 :
Декабрь 14, 2006, 22:18 »
Вудруф, Понятно что в конец чаровского массива дописывает \0. Но как это дело можно выровнять?
Записан
bigirbis
Гость
Можно ли преобразовать struct в const char*?
«
Ответ #13 :
Декабрь 14, 2006, 22:43 »
Выравнивание всегда происходит в большую сторону и нуль никуда не денется, если он там был
Записан
Вудруф
Гость
Можно ли преобразовать struct в const char*?
«
Ответ #14 :
Декабрь 15, 2006, 08:47 »
Приведи код
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...