в SDCC Compiler Руководство пользователя я прочитал следующее:Почему это предложение устраняет «предупреждение о несоответствии функций»?
void to_buffer(unsigned char c)
{
c; // to avoid warning: unreferenced function argument
__asm
; save used registers here.
; If we were still using r2,r3 we would have to push them here.
; if(head != (unsigned char)(tail-1))
mov a,_tail
dec a
xrl a,_head
; we could do an ANL a,#0x0f here to use a smaller buffer (see below)
jz t_b_end$
;
; buf[ head++ ] = c;
mov a,dpl ; dpl holds lower byte of function argument
mov dpl,_head ; buf is 0x100 byte aligned so head can be used directly
mov dph,#(_buf>>8)
movx @dptr,a
inc _head
; we could do an ANL _head,#0x0f here to use a smaller buffer (see above)
t_b_end$:
; restore used registers here
__endasm;
}
Я не понимаю, что это предложение "c; // to avoid warning: unreferenced function argument"
значит, это специальное использование SDCC? Или специальное использование языка C?
Вы искали предупреждающее сообщение в комментарии? Что вы не поняли в expalanation? (Btw, он должен быть '(void) c;', иначе другие компиляторы, такие как gcc, могут жаловаться на «результат выражения, который не используется» или аналогичный.) Дополнение: самый первый результат поиска указывает на форум поддержки sdcc. – Olaf