昨晚在写代码的时候,发现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;
}