Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Библиотека работы с файловой системой Petit FatFs R0.02a
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Twen
Скачал библиотеку работы с файловой системой Petit FatFs R0.02a.
Прикрутил , не не могу скомпилировать...

Есть функция :

FRESULT pf_read (
void* buff, /* Pointer to the read buffer (NULL:Forward data to the stream)*/
WORD btr, /* Number of bytes to read */
WORD* br /* Pointer to number of bytes read */
)
{
DRESULT dr;
CLUST clst;
DWORD sect, remain;
WORD rcnt;
BYTE cs, *rbuff = buff; / !!!!!!!!!!!!!!!Ругается
....
....
}

Пишет что указатель типа BYTE не может быть инициализирован buff, который имеет тип void*...
Error [Pe144]: a value of type ''void *" cannot be used to initialize an entity of type "BYTE*"

Я писал *rbuff = (BYTE)buff, но пишет ошибку...


skripach
Цитата
!!!!!!!!!!!!!!!Ругается

А у меня не ругается.
Ivan Panov
Цитата(Twen @ Sep 26 2011, 17:40) *
Я писал *rbuff = (BYTE)buff, но пишет ошибку...


Компилятор IAR?
Было такое сообщение.
Вы приводите не к тому типу. Должно быть так: *rbuff = (BYTE*)buff
skripach
Цитата
Должно быть так: *rbuff = (BYTE*)buff

так должно быть если так
Код
BYTE cs, *rbuff = (BYTE*)buff;

иначе
Цитата
*rbuff = (BYTE)buff;

Вобщем пусть ТС словами напишет чего хочет.

Ivan Panov
Цитата(skripach @ Sep 26 2011, 19:36) *
так должно быть если так
Код
BYTE cs, *rbuff = (BYTE*)buff;


Вы совершенно правы, именно это я и хотел написать:
Код
BYTE *rbuff= (BYTE*)buff;

по невнимательности ввёл спрашивающего в заблуждение.
Сергей Борщ
QUOTE (Twen @ Sep 26 2011, 17:40) *
Пишет что указатель типа BYTE не может быть инициализирован buff, который имеет тип void*...
Error [Pe144]: a value of type ''void *" cannot be used to initialize an entity of type "BYTE*"
А вы случаем не в режиме C++ компилируете? В таком случае правильно ругается. В С++ разрешено неявное приведение любого указателя к void *, но не наоборот. В С оба приведения являются легальными. Библиотека написана на С. Вам необходимо сделать явное преобразование. Как именно - выше подсказали.
Twen
Спасибо, вы все были правы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.