Маєм такі стрічки:
comandos[0].codegen=(void*(*)())cg_simple_fileop;
на цю стрічку компілер ні мур-мур.
comandos[1].codegen=cg_simple_fileop;
за цю лає: warning: assignment from incompatible pointer type
опсс функції (описана в тому ж файлі, що і присвоєння):
void* cg_simple_fileop(char *str,int*bc_size,void*code,function_id fid);
Ну і опис структури:
struct names{int (*labgen)();
void *(*codegen)();char *name,*description;
function_id fid;
}comandos[NWORDS];
тобто і функція повертає void* і структура таку просить, що цьому бісовому gcc ще треба?
PS
прога ніби як працює, але всеодно не можу терпіти беззмістовні попередження
PPS
Тут є проблемою така поведінка, що якщо приглушити шум, як це написано вище - можна присвоювати пойнтера на дідько зна яку функцію, а воно і не пікне. Тобто втрачається можливість перевірки
і починає в якості повідомлення про помилку видавати "Segmentation fault".