Char* hex string to BYTE Array
Some minor comments:


you are assuming there are no invalid chars in the input string.
why not pass the string length into the function; the caller has to know it in order to allocate the hex buffer.
len could be const
unnecessary brackets around RHS expressions in hex[i] assignments
I would prefer the second assignment to be |= not +=
it is usual to use uppercase names only for #defined constants