void foo(int *pA, int *pB) { *pB = some.arr[*pA]; foo(sizeof bar / sizeof *bar, baz); } #define MEM_READ_BYTE(phwi, addr, data) \ *data = *((PUCHAR)((phwi)->m_pVirtualMemory + addr)) #define MEM_WRITE_BYTE(phwi, addr, data) \ *((PUCHAR)((phwi)->m_pVirtualMemory + addr)) = (UCHAR)(data)