Почему OCIDateTimeGetTime принимает неконстантный OCIDateTime* в качестве параметра?

Я использую функции OCIDateTimeGetTime и OCIDateTimeGetDate, чтобы получить информацию из экземпляра OCIDateTimeнепрозрачная структура данных. Обе функции принимают OCIDateTime* в качестве параметра, а также некоторые параметры, куда записываются данные. В документации OCIDateTimeGetDate мы можем видеть, что это OCIDateTime* является const:

Синтаксис OCIDateTimeGetDate

Что имеет смысл, так как это просто чтение из него, а не его изменение. Однако в документации аналогичного OCIDateTimeGetTimeэто не const:

Синтаксис OCIDateTimeGetTime

Документация также не упоминает никакой разницы. Это его запись для datetime параметр:

datetime (IN)

Указатель на дескриптор OCIDateTime, из которого будет извлекаться информация о времени.

С "дата" вместо "время" для OCIDateTimeGetDate,

Это также не похоже на ошибку с документацией: в ociap.h можно найти следующие прототипы:

/*----------------- Extensions to Datetime interfaces -----------------------*/
/*--------------------- Actual Prototypes -----------------------------------*/
sword OCIDateTimeGetTime(void  *hndl, OCIError *err, OCIDateTime *datetime, 
                         ub1 *hr, ub1 *mm, ub1 *ss, ub4 *fsec);

sword OCIDateTimeGetDate(void  *hndl, OCIError *err,  const OCIDateTime *date, 
                 sb2 *yr, ub1 *mnth, ub1 *dy );

Почему это так? Есть ли OCIDateTimeGetTime содержать любые недокументированные функции, которые могут изменить OCIDateTime что прошло? Или это ошибка, и я могу предположить, что OCIDateTime не будет изменен?

0 ответов

Другие вопросы по тегам