Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 739
от 14.05.2007, 20:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 478, Экспертов: 73
В номере:Вопросов: 2, Ответов: 4


Вопрос № 86135: Здравствуйте. Помогите, пожалуйста, у меня уже голова кругом. В приложении кусок кода. Компилятор C++ Bulder 6. Пытаюсь выровнять данные по границе 16 байт. По всем признакам, это делается директивой #pragma pack(16), однако данные не хотят вырав...
Вопрос № 86169: Здраствуйте уважаемые эксперты. я учусь программировать под констолью, при проектировании интерфейса необходимо очистить консоль для последующего вывода следующего меню. Подскажите пожалуйста как это можно организовать. Программирую под 2003 студией....

Вопрос № 86.135
Здравствуйте.
Помогите, пожалуйста, у меня уже голова кругом. В приложении кусок кода. Компилятор C++ Bulder 6. Пытаюсь выровнять данные по границе 16 байт. По всем признакам, это делается директивой #pragma pack(16), однако данные не хотят выравниваться. Я уже добавил лишние float Unused[7] для дополнения структуры до размера, кратного 16 байтам, но все равно не помогает.
Может, кто-нибудь сталкивался с подобным? Хотя бы что можно еще попробовать?
Может быть, можно выделить память с помощью GlobalAlloc с выравниванием?

Приложение:

Отправлен: 09.05.2007, 11:46
Вопрос задал: John Paramol (статус: 8-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Sergey A. Wedensky
Здравствуйте, John Paramol!

Директива #pragma pack указывает какое выравнивание должно быть у членов структур, т.е. если Вы напишете

#pragma pack(push, 16)
struct s
{
DWORD d1;
WORD d2;
BYTE d3;
};
#pragma pack(pop)

то в памяти эта структура будет располагаться примерно следующим образом:

0 8 16 24 32 40
++++------------++--------------+---------------
dw w b

Если я правильно понял, Вам надо создать массив структур так, чтобы адрес каждой был выровнен на некоторую границу (так и не понял - 16 или все-таки 128 б?).
В приложении вариант.
Удачи!

Приложение:

Ответ отправил: Sergey A. Wedensky (статус: Студент)
Ответ отправлен: 10.05.2007, 10:39
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Способ рабочий, но посмотрите, пожалуйста, минифорум.


Вопрос № 86.169
Здраствуйте уважаемые эксперты. я учусь программировать под констолью, при проектировании интерфейса необходимо очистить консоль для последующего вывода следующего меню. Подскажите пожалуйста как это можно организовать. Программирую под 2003 студией.Заранее благодарю.
Отправлен: 09.05.2007, 19:14
Вопрос задал: Shayen (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Ghoul
Здравствуйте, Shayen!

#include <stdlib.h>
...
system("CLS");
Ответ отправил: Ghoul (статус: 1-ый класс)
Ответ отправлен: 09.05.2007, 19:42
Оценка за ответ: 5

Отвечает: kool
Здравствуйте, Shayen!
В conio.h есть ф-ция clrscr().
Удачи!

---------
I am.
Ответ отправил: kool (статус: Студент)
Ответ отправлен: 09.05.2007, 23:24
Оценка за ответ: 5

Отвечает: Tsunami
Здравствуйте, Shayen!
Проще всего это сделать, используя system("cls"); прототип функции в stdlib.h (или cstdlib).
Пример:

Приложение:

Ответ отправил: Tsunami (статус: 1-ый класс)
Ответ отправлен: 10.05.2007, 00:52
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100

В избранное