typedef 与 #define
typedef int feet;
feet distance; //对已经存在的类型增加一个名字
distance = “hello”; //报错,typedef会进行类型检查
#define f(x) x*x //全局作用
int a=6, b=2, c;
c=f(a) / f(b); //c=36, #define只是简单的字符串替换
变量声明 extern 与 static
extern声明的变量或方法在其他模块中定义过,可以直接使用(但.h文件里定义的必须得包含此头文件才能使用——所以为了避免重复定义导致出错,最好把extern声明放在.h文件里)
// 1.cpp
int x = 10;
// 2.cpp 注意没有包含1.cpp
extern int x;
cout << x << endl; //输出10
- static声明的全局变量和函数只能在本模块使用。
- 全局变量可以与局部变量有相同的名字,但他们相互独立
常量定义
#define LENGTH = 10;
const int LENGTH = 10;
类型转换
int a=1;double b=2.5;
a=b;
cout << a; //输出为 2,丢失小数部分
int a = 1;double b = 2.1;
cout << "a + b = " << a + b << endl; //输出为a + b = 3.1