zoukankan      html  css  js  c++  java
  • static, extern的用法和区别, const用法

    当使用static来修饰局部变量, 那么会延长局部变量的生命周期, 并且会更改局部变量存储的位置 , 将局部变量从栈转移到静态区中.

    只要使用static修改局部变量之后, 当执行到定义局部变量的代码就会分配存储空间, 但是只有程序结束才会释放该存储空间

    用static声明或定义一个变量,那么变量只分配一次内存空间,即只执行一次.


    static和extern: 函数也分为内部函数和外部函数,(内部函数:只能在当前文件中范文的函数称之为内部函数,  外部函数: 可以被其它文件访问的函数称之为外部函数)

    默认情况下所有的函数都是外部函数

    只要在函数的返回值前面加上一个extern就可以让函数变为一个外部函数, 由于默认就是外部函数, 所以在开发中一般情况extern没人写

    如果extern写在函数的实现中, 代表定义一个外部函数

    如果extern写在函数的声明中, 代表声明一个外部函数

    只要在函数的返回值前面加上static就可以让函数变为内部函数, 其它文件就不能访问了

    如果static写在函数的实现中, 代表定义一个内部函数

    如果static写在函数的声明中, 代表声明一个内部函数


    const:

    const对基本数据类型的作用, 可以让基本数据类型的变量变为常量

    const有两种写法, 1.写在数据类型的左边, 2.写在数据类型的右边

    如果const写在指针类型的左边, 那么意味着指向的内存空间中的值不能改变, 但是指针的指向可以改变

    如果const写在指针的数据类型和*号之间, 那么意味着指向的内存空间中的值不能改变, 但是指针的指向可以改变

    如果const写在指针的右边(数据类型 * const), 那么意味着指针的指向不可以改变, 但是指针指向的存储空间中的值可以改变

    规律:

         如果const写在指针变量名的旁边, 那么指针的指向不能变, 而指向的内存空间的值可以变

         如果const写在数据类型的左边或者右边, 那么指针的指向可以改变, 但是指向的内存空间的值不能改变




    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    根据访问属性进行差异化数据加载
    前人挖坑,后人填坑
    也让盲人拥抱互联网
    谈谈D2
    Android数据库大批量数据插入优化
    framework中编译anroid工程并在模拟器上运行
    简单JNI使用demo
    解决javah生成c头文件时找不到android类库的问题
    JNI的native代码中打印日志到eclipse的logcat中
    Android.mk简介<转>
  • 原文地址:https://www.cnblogs.com/liuqblog/p/4948154.html
Copyright © 2011-2022 走看看