//через препроцессор
#include <avr/io.h>
#define CLR_PORT_BIT(PORT,BIT) {(PORT) &= ~(1<<(BIT));}
#define SET_PORT_BIT(PORT,BIT) {(PORT) |= 1<<(BIT);}
#define MISO_PORT PORTC
#define MISO_BIT (3U)
#define CLR_MISO() CLR_PORT_BIT(MISO_PORT, MISO_BIT)
#define SET_MISO() SET_PORT_BIT(MISO_PORT, MISO_BIT)
//или если очень хочется, то так
typedef struct Port_Bit{
volatile uint8_t * Port;
unsigned char Bit;
}Port_Bit;
Port_Bit dMISO={&PORTB, 1};
Port_Bit * miso = &dMISO;
void ClrBit(Port_Bit * pb){
(*(volatile uint8_t *)(pb->Port)) = pb->Bit;
}
int main(void){
ClrBit(miso);
return 0;
}