У меня есть следующий код:
long fp = ...
void (*ptr)(long, char*, char*) = fp;
Длинный fp
является правильным указателем на функцию, который является длинным. Я получаю стандартное предупреждение «создает указатель из int без приведения». Я хочу иметь возможность компилировать с:
-std=iso9899:1990 -pedantic-errors
что превращает это предупреждение в ошибку. Вопрос: каков правильный состав? Я пробовал разные догадки, например:
void (*ptr)(long, char*, char*) = (void)(*)(long, char*, char*) fp;
Но не могу найти подходящего.
fp
является правильным указателем на функцию, почему он хранится в длинном? Может быть, вам следует сосредоточиться на правильном вводе данных, а не пытаться потом придумать кладж. - person Mr Lister   schedule 04.03.2012