Las variables de entorno y las constantes del preprocesador son dos cosas muy diferentes.
Las constantes del preprocesador son símbolos que se definen dentro del código fuente, constantes y conocidos en tiempo de compilación del programa. Por ejemplo, puedes definir como simbolo del preprocesador la constante pi, o la dimensión de un array que utiliza tu programa.
Las variables de entorno, son variables manejadas por el sistema operativo, y a las que tu programa puede acceder utilizando la función getenv. Como su nombre indica, pueden cambiar con el tiempo, y entre ejecuciones del programa, y lógicamente, no se conocen en tiempo de compilación.
La función getenv recibe como parámetro el nombre de la variable a la que quieres acceder y te devuelve un puntero al valor; al menos eso dice la ayuda ;-)
char *valor;
valor = getenv("PROMPT");
Espero que te sirva!