leo*_*n22 1 c++ unary-operator
我有以下声明,它编译:
static unsigned char CMD[5] = {0x10,0x03,0x04,0x05,0x06};
int Class::functionA(int *buflen)
{
...
int length = sizeof(CMD); + *buflen; // compiler should cry! why not?
...
}
Run Code Online (Sandbox Code Playgroud)
为什么我没有编译错误?
+ *buflen;
Run Code Online (Sandbox Code Playgroud)
是一元运算+符的有效应用int&,它基本上是一个noop.就像你写这个一样:
int i = 5;
+i; // noop
Run Code Online (Sandbox Code Playgroud)
见这里什么一元operator+实际上确实为整数,并在这里你几乎可以用它做什么.