VAI (31.08.2012 13:45, просмотров: 137) ответил rezident на Вопрос по ANSI C. Может ли функция возвращать значение, отличающееся от базовых типов, например, значение типа структуры? Или эта фича для C++? С ходу ответ на этот вопрос в стандарте C99 я что-то не могу найти.
ХЗ что в стандартах, но в ИАРе 3.30 для MSP я возвращал структуры.
// --- Типы данных ---------------------------------------------------------------------------------------- **
typedef struct
{ int err; // код ошибки
WORD ot_kogo; // от кого информация
WORD skolko; // размер в байтах
} D_IN_RET;
typedef struct // структура, возвращаемая run_command()
{ D_IN_RET d_ret; // код возврата от data_in или data_out
short command; // выполненая команда
} RUN_CMD_RET;
D_IN_RET data_in( BYTE *DataBuf, WORD max_buf_len, short timeout_sinh );
// пример
RUN_CMD_RET run_command( void )
{
RUN_CMD_RET r = {{ 0, 0, 0 }, CMD_BUG_M };
.....
if (( r.d_ret = data_in( (BYTE *)&array, sizeof( array ), TIMEOUT_SINH )).err == IO_OKEY_M && r.d_ret.skolko >= sizeof( short ) && flag.m_prtcl == ON )
{
....
}
return( r );
}