Essential, if you are compiling a 64 bit application, the compiler would define _WIN64 and since that application would not run on a 32 bit OS, then in that case, it is essentially pointless to actually check the OS. If the OS would have been 32 bits, the application would have fail to load. Identifier starting with underscore are supposed to be reserved to the compiler so if someone use them anyway the result might be undefined. Thus only when the application is compiled in 32 bits, it is necessary to do the test.
Philippe Mori