编译c++源代码时,首先预处理器会将源代码进行预处理,预处理器执行源代码中的预处理指令,下面是如何查看cpp文件经过预处理后的文件。
首先有一个简单的cpp文件如下:
#include "StdAfx.h"
#include "TestMacro.h"
#include "iostream"
using namespace std;
TestMacro::TestMacro(void)
{
}
void testMacro_2()
{
#ifndef LANGUAGE
#define LANGUAGE 5
#define GERMEN 1
#define ENGLISH 2
#define FRENCH 3
cout << "LANGUAGE can be defined" << endl;
#else
cout << "LANGUAGE has been defined" << endl;
#endif
#if LANGUAGE == ENGLISH
#define Greeting "GoodMorning."
#elif LANGUAGE == GERMEN
#define Greeting "Guten Tag."
#elif LANGUAGE == FRENCH
#define Greeting "Bonjour."
#else
#define Greeting "Hi."
#endif
cout << Greeting << endl;
}
win7系统vs2010环境下,在开始->所有程序->msvs2010->Visual Studio Tools 下找到Visual Studio 命令提示(2010)并打开,将路径跳到TestMacro.cpp文件的保存路径下,再输入命令cl -E TestMacro.cpp后按回车,控制台中输出的就是经过预处理后的cpp文件。
上面的文件预处理后变为:
可以将预处理后的文件重定向到文本文件中,命令为:
cl -e TestMacro.cpp >stdout.txt