如何为enum传递uint16_t *

时间:2017-07-13 17:42:51

标签: c++ enums

typedef enum : uint16_t
{
    typeScan     = 11,
    typeSell     = 12,
    typeBuy      = 13
} actionString;

..
..
..

class classB
{
public:
    const char* getStatus(actionString, uint16_t*);
}

实施时

classB b = new classB();

const char* statusText = b -> getStatus(typeScan, ...);

我在第二个参数中传递了什么?我对这种语言很陌生,不知道如何实现它。

1 个答案:

答案 0 :(得分:3)

给出函数声明:

const char* getStatus(actionString, uint16_t*);

传递指针时有两个有效选择:
1)通过nullptr:

  actionString a;
  const char * p_status = getStatus(a, nullptr);

2)将指针传递给现有变量

actionString a;
uint16_t     value = 0U;
const char * p_status - getStatus(a, &value);

其他选择可能导致未定义的行为。

如果nullptr无法充分处理空指针,则传递getStatus可能会导致未定义的行为。

请查看您最喜欢的C ++参考中有关指针的部分。