Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Передача параметров в функции ... опять 01.09.05 19:05 Число просмотров: 4013
Автор: void <Grebnev Valery> Статус: Elderman Отредактировано 01.09.05 20:20 Количество правок: 1
|
Сходный вопрос уже обсуждаля. Вот наткнулся опять. Мой начальник пишет приблизительно такие функции...
typedef struct
{
// members - variables
int m_member1;
....
// members -nonvirtual functions
void func1( void );
....
}
HisClass;
//---------------------------------------
void SetData( HisClass inst )
{
HisClass a;
....
memcpy( & a, & inst, sizeof( HisClass ) );
...
}
//---------------------------------------------------------
void GetData( HisClass & inst )
{
HisClass a;
...
memcpy( & inst, & a, sizeof( HisClass ) );
...
}
Вопрос не в том, что это не работает (конечно, это работает), а в чистоте и надёжности кода... Cомнения такие:
1) В первой функции мне не понятно, насколько корректно (имеется ввиду компиллеро-независимо) всегда будет передаваться верный указатель & inst. На что будет указывать & inst - на облаcть памяти в стеке?
2) Во второй функции мне непонятно - корректно ли для всех компиллеров будет разрешаться указатель & inst (там объявленассылка)
3) Пока нет в HisClass виртуальных функций. Поэтому sizeof будет корректно определять размер копируемого буфера. Но вопрос чистА остаётся ... есть ли подводные камни при использовании разных компиллеров.
Спасибо.
===========================
Редакт.
Я это к тому, что функции будут лучше смотреться, на мой взгляд, как:
void SetData( HisClass & inst )
{
HisClass a = inst;
....
}
void GetData( HisClass & inst )
{
HisClass a;
...
inst = a;
...
}
|
- [C++] Передача параметров в функции ... опять - void 01.09.05 19:05 [4013]
|
|
|