Цитата(CrimsonPig @ Mar 2 2015, 01:29)

Ошибка либо в невыразимо кривом компиляторе, либо в кривых руках интригана (что более вероятно).
Вот такое "компилируется" без всяких проблем. Найдите отличия с вышеприведенным кодом.
typedef unsigned char uint8_t;
typedef unsigned int uint32_t;
typedef void (*timer_callback_t)(uint8_t);
uint8_t timer_create(uint32_t, uint32_t, timer_callback_t);
вижу разницу только в переопределении типов
typedef unsigned char uint8_t;
typedef unsigned int uint32_t;
что и без того нормально компилится со включенным stdint.h
Цитата(smalcom @ Mar 1 2015, 23:44)


компилятор написал, что вы не можете использовать типы объявленные через typedef в "форвардинге". только с объявлением тела функции.
ЕМНИП в таком случае получается двойная неизвестность - т.е. мало того что ф-ии нет, так ещё и типы пользовательские. как вариант попробуйте
другой стандарт (gnu++11 или c++11) или указать параметры функции.
т.е. он в таком виде не видит типы данных uint8_t ?