Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: вопрос по С
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
kostik2
void *memcpy(void *, CONST void *, size_t);

кусок из файла mmc.c // FatFs - FAT file system module R0.07 ©ChaN, 2009

FRESULT f_write (
FIL *fp, /* Pointer to the file object */
const void *buff, /* Pointer to the data to be written */
UINT btw, /* Number of bytes to write */
UINT *bw /* Pointer to number of bytes written */
)
{
FRESULT res;
DWORD clst, sect;
UINT wcnt, cc;
const BYTE *wbuff = buff;

вызываем MemCpy(&fp->fs->win[fp->fptr % SS(fp->fs)], wbuff, wcnt); /* Fit partial sector */

.....
}

выходит ошибка : type error in argument 2 to `memcpy'; found `pointer to const unsigned char' expected `pointer to void'

я не очень силен в С подскажите что ни так ?
Aesthete Animus
Чем и как компилите, не Плюсовым компилятором случайно? Си не должен ругаться на такие приведения. Попробуйте например привести wbuf к (const void*)
kostik2
Цитата(Aesthete Animus @ May 2 2009, 14:00) *
Чем и как компилите, не Плюсовым компилятором случайно? Си не должен ругаться на такие приведения. Попробуйте например привести wbuf к (const void*)

компилятор iccavr 7.0 для микроконтроллеров avr.
выбрана опция: С++ comments, binary constants
Сергей Борщ
Цитата(Aesthete Animus @ May 2 2009, 13:00) *
Си не должен ругаться на такие приведения.
Вообще-то должен. Тут происходит неявное приведение параметра unsigned char const * к типу аргумента void *. При этом константность параметра теряется, на что и ругается компилятор.

Отредактировано: А проблема скорее всего в том, что прототип описан как void *memcpy(void *, CONST void *, size_t); и при этом CONST объявлен как #define CONST, а должно быть #define CONST const
Хотя совершенно не понятно, откуда вообще взялся тут этот CONST, хотя по стандарту должен быть const.
kostik2
спасибо. исправил. ошибка больше не выводится.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.