// a.cpp
#include "a.h"

void foo()
{ printf("The A.cpp"); }

//b.cpp
#include "b.h"

void foo()
{ printf("The B.cpp"); }

//main.cpp

#define GO 1

#if GO==1
#include "a.h"
#else
#include "b.h"
#endif

void main()
{
        foo();
}

이런식의 조건부 컴파일은 불가능한가요?에러가 나는군요...
C 고수나 VC 컴파일러 고수님 답변부탁해요.