препроцессор выполняет то, что ему сказано. Правила арифметики не ставят приоритет операции деления перед операцией умножения.
В приведенном примере можно попробовать два варианта: 1. Явное указание порядка операций unsigned int code MCode[2]={10 * (30000 / 30), 10 * 40000 / 40};
2. Указание типа константы unsigned int code MCode[2]={10 * 30000L / 30, 10 * 40000 / 40};