Если значение хотя бы одного параметра будет неизвестно на этапе компиляции, то функция будет запущена в runtime (а не будет выведена ошибка компиляции).
res_func test_hash(params...){
if(params1 == const_A){
return_1;
} else {
if(params2 == const_B){
return 2;
} else {
if(params3 == const_C){
return 3;
} else {
return 4;
}
}
}
Проверка результата:
res_func = test_hash(params...);
switch(res_func){
case 0: ...
break;
case 1: ...
break;
case 2: ...
break;
case 3: ...
break;
}
А в общем, в плане диагностики, инструментов хватает!
Посмотрите на программу amap: ест map файлы. Например можно у себя обнаружить массивчик на 1 с лопаточкой килобайт под названием impure_data и _noerror: может помочь ключ линковки --specs=nano.specs.
Ладно, а то я чёт умничать начал))
Удачи!