关于代码优化 替代 switch case

lsk_30516 lsk_30516 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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;
}
...全文
评论 15
收藏 已收藏
分享
返回顶部
lsk_30516
C++ 语言 65,214 成员 250,514 内容