Linuxc编程的常用关键字 register ,static ,extern ,const ,typedef

来源:互联网 发布:二值化算法程序 编辑:程序博客网 时间:2024/06/03 19:03
Linuxc编程的常用关键字 register ,static ,extern ,const ,typedef 
1、register关键字
    寄存器变量。用来请求编译器尽可能的将register修饰的值保存在寄存器中,从而省去cpu从内存中抓取数据的时间,从而提高程序的运行效率。
    使用的情况:1、经常被调用和使用的参数
                          2、大型的循环中使用的参数
     使用时的注意事项:1、只修饰局部变量,不能修饰全局变量,也不能修饰函数;
                                      2、其修饰的变量的地址保存在寄存器中,所以不能对其进行取地址(&)操作;
                                      3、类型必须是cpu所能够接受的数据类型。

2、static关键字
    1、修饰局部变量:被其修饰的局部变量叫做静态局部变量,延长其数据的生命周期至整个程序执行结束后释放;
    2、修饰全局变量:被其修饰的全局变量叫做静态全局变量,其数据只能在本文件中访问,不能被其他的文件访问;
    3、修饰函数:被其修饰的函数叫做静态函数,只能在本文件内被调用,不能被其他的文件调用。   ps:值得注意的是:静态函数必须在前面定义,非静态的要放在后面,否则编译器会报错。

3、extern关键字
    外部声明函数,常用来链接其他文件中定义的变量。

4、const 函数
    只读变量(readonly)。被其修饰的变量,可以被使用,但是不能直接通过操作变量名进行直接修改,但是我们可以通过地址修改其中的值
    const int i = 0;
    i ++;                 // 这样是不能修改的
   
    const int i = 0;
    int *p;
    p = &i;
    p++;                   //这样就可以修改其中的i的值

5、typedef函数
     用于重命名,例如对一些复杂的类型声明可以用typedef 
      typedef unsigned int  int_u            //将unsigned int 重新命名为int_u;
      这样我们在在经常使用unsigned int 的时候可以很方便的写成int_u,而且我们的代码的移植性也会增强,可以直接在头文件这边更改所有的数据类型。增强了代码的移植性。

2 0