zoukankan      html  css  js  c++  java
  • C语言学习笔记--C语言中变量的属性关键字

    变量属性关键字的使用语法:property type var_name;

    1.auto 关键字

    auto关键字是C语言中局部变量的默认的关键字,C编译器默认所有的局部变量都是auto的,它表明了被修饰的关键字将被存储在栈空间上。

    2.register 关键字

    register关键字请求将被修饰的关键字存储于寄存器中,所以register 变量必须是 CPU 寄存器可以接受的值而且不能用&运算符获取 register 变量的地址 ,

    但是 register 关键字只是请求寄存器变量,所以不一定会成功。 

    3.static 关键字

    1static 关键字指明变量的静态属性——局部变量存储在程序静态区
    2static 关键字同时具有作用域限定符” 作用
          ①static 修饰的全局变量作用域只是声明的文件中
          static 修饰的函数作用域只是声明的文件中

    4.extern 关键字

    1extern 用于声明外部定义的变量和函数
        extern 变量在文件的其它地方分配空间
        extern 函数在文件的其它地方定义

    2extern 用于告诉编译器用 C 方式编译
    C++编译器和一些变种 C 编译器默认会按“自己”的方式编译函数和变量,通用 extern 关键字可以命令编译器“以标准 C 方式进行编译”。

    extern “c”
    {
        int f(int a,int b)
        {
            return a + b;
        }
    }

    static关键字和extern关键字的使用

    /**************************g.c 文件**************/
    static int g_i; //g_i 只能在本文件中使用
    int getI()
    {
        return g_i;
    }
    /**************************main.c 文件**************/
    #include<stdio.h>
    extern int getI(); //extern 声明 getI 函数是在其他地方定义的。
    int main()
    {
        printf("%d
    ", getI());return 0;
    }

    参考资料:
    www.dt4sw.com
    http://www.cnblogs.com/5iedu/category/804081.html

  • 相关阅读:
    海量数据与布隆过滤
    Flink History Job
    golang and intellij
    maven中如何得到父工程的位置
    maven中进行go的编译
    hbase表的写入
    Storm之tickTuple
    storm-kafka版本不匹配的问题
    (17)zabbix自定义用户key与参数User parameters
    (16)zabbix history trends历史与趋势数据详解
  • 原文地址:https://www.cnblogs.com/CoderTian/p/5891378.html
Copyright © 2011-2022 走看看