预处理器
编译之前执行的一段程序,可以部分地改变所写的程序。#include就是一项预处理功能,当处理器看到#include标记时就会用指定的头文件的内容代替#include。
头文件保护符也是预处理功能之一。预处理变量有两种状态:已定义和未定义。#define指令把一个名字设为预处理变量,#ifdef仅当变量已定义时为真,ifndef仅当变量未定义时为真。一旦执行直到遇到#endif指令为止。
可有效防止重复包含的发生。
预处理变量无视c++作用域的规则。预处理变量的名字通常全部大写。
命名空间的using声明
using 声明的形式:
using namespace::name;
eg:
#include "stdafx.h"
#include <iostream>
//using声明,当使用cout时会直接从命名空间std获取
using std::cout;
int main()
{
cout << "hello world" << std::endl;
std::cout << "hello world" << std::endl;
return 0;
}
每个using声明引入命名空间中的一个成员。若要使用endl来替换std::endl时,需新增using声明。每个using声明都应以分号结束。
头文件中不应包含using。头文件中的内容会被拷贝到所有引用它的文件中,使用using可以会导致意外的名字冲突。
文章评论