inline,static与const

inline内联函数

  1. inline只是对编译器的剑意,由编译器决定是否在编译阶段将之处理为内联函数
  2. 内联函数只在release版本下有效,在debug版本下不起作用
  3. inline函数是在编译阶段,对代码进行展开,也因此,内联函数减少了函数调用的消耗,且因此,内联函数在编译阶段是不会产生函数符号的。
  4. 与宏的区别:(1)inline函数可以调试
    (2)inline函数时一个独立的函数模块,而宏是完全的字符替换,相对而言,宏是不如内联函数安全的。

static

全局变量:
全局变量有了static修饰,该全局变量只能在当前文件内使用,也因此,多个源文
件可以定义同名static全局变量而不用担心出现重复定义。
普通局部变量:
有static修饰,普通局部变量由本来入栈的指令变为了存放在.data或是.bss段的数
据,程序一启动,便会拥有内存,且生存周期变长。
普通函数
普通函数只能在当前文件内调用,不会参与链接时候的符号解析。
类的成员方法
该方法调用时候不会产生this指针,因此调用时候不在依赖类的对象,调用该类函
数使用类的作用域符号调用即可
类的成员变量
成员变量不再属于类生成的对象,而是属于整个类,相当于作用于类内部的全局变量。其可以通过类的作用域直接访问,但其必须在类外进行初始化。

const

C语言之中,const定义的是常变量
C++中,const用来定义常量,编译过程中,所有使用常量名字的地方,常量都会被常量的初始值直接替换掉。
不过其也可以用来定义常变量。
int b=10; const int a=b;这样定义出的a便是一个常变量。
在const修饰指针的时候,会有如下几种常见错误:
​ const int * -> int *
​ const int ** -> int**
​ int ** -> const int **
​ int * const * -> int**
const修饰成员方法
成员方法变为常成员方法。
常成员方法只能访问其他成员,而不能修改其他成员;
类的普通对象与常对象都能访问常方法,但是常对象只能访问常成员方法。
const修饰成员变量
成员变量变为常成员变量。
常成员的初始化必须在类的构造函数的参数列表之内,否则会出错。

ps:
static与const不能在类内修饰同一方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值