C语言学习笔记--C语言中变量的属性关键字

时间:2022-05-13 21:15:18

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

1.auto 关键字

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

2.register 关键字

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

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

3.static 关键字

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

4.extern 关键字

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

(2)extern 用于“告诉”编译器用 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\n", getI());return ;
}

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