2016-07-31 4 views
1

У меня есть API. Я объявил CORBA Short как входной параметр метода.CORBA :: Проверка коротких значений

char* WirelessServ::allocateNewService(
     const char* csproductlineName, 
     CORBA::Long clAccountNo, 
     CORBA::Short cshServiceNoCategoryFlag, 
    ) IT_THROW_DECL((
     CORBA::SystemException, 
     ArtixToOrbix::GenericException 
    )) 

Теперь я хочу, чтобы проверить, является ли значение входного сигнала, который приходит в параметре «» cshServiceNoCategoryFlag фактически NULL ИЛИ оно содержит 0 (числовой ноль).

Но кажется, что короткое значение NULL также обрабатывается 0 (ноль). Пожалуйста, порекомендуйте.

+0

Непонятно, что вы спросили, поскольку NULL определяется как 0 ('# define NULL ((void *) 0)'), то это то же значение. – mpromonet

ответ

1

На данный момент ваша реализация CORBA вызывает в вашем allocateNewService операции каждый аргумент имеет допустимое значение, для CORBA::Short это числовое значение, например 0, он не может быть NULL.

Похож вы используете старинные реализации CORBA, реализация, поддерживающая IDL для отображения языка C++ 11 использовать int16_t как тип аргумента для short и std::string для string.