Standard C, it's just a pedantic distinction with no practical importance on the subject of absolute addressing of variables, registers, and memory in general.You can, and most of the time it will work, but the C language standard says it is implementation defined. That is why I say you cannot do it with standard C.
As part of the C standard, you MUST consult each implementation for those delineated Implementation defined details, extensions and attributes for each architecture/CPU instruction set the compiler is designed to be used for. The standard is written so C can be useful and practical on each architecture/CPU instruction set. This is a very good way to write a standard for compilers designed to expose underlying hardware behavior because it's needed in most low-level hardware controller applications.