2016-07-31 29 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”参数的输入值是否实际上是空或者它含有0(数字零)。

但似乎NULL短值也被视为0(零)。请指教。

+0

由于NULL被定义为0('#define NULL((void *)0)'),所以你不清楚你问了什么,那么它是相同的值。 – mpromonet

回答

1

在你的CORBA实现调用到您的allocateNewService操作的那一刻每个参数确实有一个有效的值,对于一个CORBA::Short这是一个数值,例如0,它不能是NULL

看起来您使用的是古老的CORBA实现,实现支持IDL到C++ 11语言映射使用int16_t作为参数类型为string一个shortstd::string