昨晚在写代码的时候,发现switch 下的case 语句有的加了{},有的却没加,但是当我在 case下面的条件语句增加 变量定义的时候 如果不加{},就会报错!
正如下面代码因为定义了stringstream 流类型,所以必须要增加{}
否则报错
error: jump to case label [-fpermissive]
error: crosses initialization of ‘int str_len’
switch(val->type) { case REDIS_REPLY_STRING: valPtr = new char[val->len]; memcpy(valPtr, val->str, val->len); values.push_back(valPtr); valueslen.push_back(val->len); break; case REDIS_REPLY_INTEGER: { std::stringstream ss; ss << val->integer; valPtr = new char[ss.str().size()]; memcpy(valPtr, ss.str().c_str(), ss.str().size()); values.push_back(valPtr); valueslen.push_back(ss.str().size()); break; }