关于代码优化 替代 switch case
type中保存的是字段的类型。我的程序用了很多swit case,有什么好的替代方法替代switch case
type = indexField[ix].second;
switch(type)
{
case field_short:
ptr = new short[recordNum];
fread(ptr, sizeof(short), recordNum, fp);
break;
case field_int32:
ptr = new int[recordNum];
fread(ptr, sizeof(int), recordNum, fp);
break;
case field_uint32:
ptr = new unsigned int[recordNum];
fread(ptr, sizeof(unsigned int), recordNum, fp);
break;
case field_int64:
ptr = new DD_INT64[recordNum];
fread(ptr, sizeof(DD_INT64), recordNum, fp);
break;
case field_float:
ptr = new float[recordNum];
fread(ptr, sizeof(float), recordNum, fp);
break;
case field_double:
ptr = new double[recordNum];
fread(ptr, sizeof(double), recordNum, fp);
break;
case field_datetime:
ptr = new int[recordNum];
fread(ptr, sizeof(int), recordNum, fp);
break;
default:
printf("Unexpected db type %d\n", type );
break;
}