static VS inline
在头文件中声明为“静态”的作用是为了将变量的链接属性改为内部,不允许其余的文件访问它,起到一个保护作用
被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。
😊在C语言中,关键字Static有三个明显的作用:
--- 在函数体内,一个被声明为静态的变量在这一函数被调用结束后不释放其存储空间。定义为static的局部变量存储在全局区(静态区),而一般的局部变量存储在栈中。
--- 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所有函数访问,但不能被模块外其他函数访问。它是一个本地的全局变量。在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。即这个函数被限制在声明它的模块的本地范围内使用。
--- 类中定义的static数据成员属于所有该类对象共享,在内存中只占一份空间,而不是每个对象都分别为它保留一份空间。
--- 类中定义为static的成员函数只能直接调用static数据成员,若要访问非静态数据成员,需要加上对象名,因为静态成员函数没有this指针。
😊内联函数需要注意点
--- 可将代码很少的函数定义为inline函数
--- 不要将代码很多的函数定义为inline函数
--- 关键字inline必须与函数定义体放在一起才能使函数称为内联
--- 仅将inline放在函数声明前面不起作用
--- 定义在类声明之中的成员函数将自动地成为内联函数
--- 现在的编译器会自动决定是否对函数inline,无论函数前是否加了inline。
在头文件中声明为“静态”的作用是为了将变量的链接属性改为内部,不允许其余的文件访问它,起到一个保护作用
被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。
😊在C语言中,关键字Static有三个明显的作用:
--- 在函数体内,一个被声明为静态的变量在这一函数被调用结束后不释放其存储空间。定义为static的局部变量存储在全局区(静态区),而一般的局部变量存储在栈中。
--- 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所有函数访问,但不能被模块外其他函数访问。它是一个本地的全局变量。在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。即这个函数被限制在声明它的模块的本地范围内使用。
--- 类中定义的static数据成员属于所有该类对象共享,在内存中只占一份空间,而不是每个对象都分别为它保留一份空间。
--- 类中定义为static的成员函数只能直接调用static数据成员,若要访问非静态数据成员,需要加上对象名,因为静态成员函数没有this指针。
😊内联函数需要注意点
--- 可将代码很少的函数定义为inline函数
--- 不要将代码很多的函数定义为inline函数
--- 关键字inline必须与函数定义体放在一起才能使函数称为内联
--- 仅将inline放在函数声明前面不起作用
--- 定义在类声明之中的成员函数将自动地成为内联函数
--- 现在的编译器会自动决定是否对函数inline,无论函数前是否加了inline。
全部评论
相关推荐