Witam
Mam problem z następującą definicją wskaźnika:
/* USB address pointer */
const char far *usb_data_address = (char far *)0x029000ul;
Wskaźnik ten używany jest dalej tak:
#pragma INTERRUPT usb_receive_isr
void usb_receive_isr(void)
{
/* Set the Interface to USB connection with PC */
if ((if_state.connection_to_pc == PC_CONN_NONE))
if_state.connection_to_pc = PC_CONN_USB;
/* Handle the received byte */
if (if_state.connection_to_pc == PC_CONN_USB)
rs232_process_received_byte(*usb_data_address);
}
Natomiast funkcja która tutaj jest wołana ma taki prototyp:
void rs232_process_received_byte(register uint8_t read_char);
Czy ktoś może mi jasno wytłumaczyć po co stosuje się słówko "far" w definicji wskaźnika ?