const
C++中const的用法,C++是怎么处理的【在编译期间对于使用常量的地方用常量初始化的值直接替换】
①const是定义常量的,不能做左值被修改; 必须初始化;
②const常量的初始值如果是明确的值,那么常量在编译期间被常量初始值替换。
③const修饰常变量(C语言)时,不能做左值,其他与普通变量一样,比如不能定义数组大小;没有编译期替换规则。
④const修饰成员变量,成为类的常成员变量,所以其初始化写在初始化列表中。
⑤修饰成员函数,成为类的常成员函数。可以访问成员,但不可修改成员。普通对象和常对象都能调常方法,常对象只能调常方法。int const*const【常this指针】 <==>int *const【this指针】
static
C++中static的用法,C++是怎么处理的
①static修饰全局变量,使全局变量从global符号变为local符号,因此只能在当前文件可见,不参与链接。
②static修饰局部变量,作用域从定义处到当前文件结束。
②static修饰成员变量,必须在类外初始化。使其从栈内存或堆内存变成.data或 .bss(未初始化和初始化为0时),同类型对象共享静态成员变量。生命周期变长。
③static修饰成员函数,用类作用域调用,而不依赖对象(没有this指针)。。
宏定义:
c程序提供的