变量属性关键字的使用语法: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

最新文章

  1. [Java Collection]List分组之简单应用.
  2. HibernateTemplate的一些常用方法总结
  3. [转]Mybatis出现:无效的列类型: 1111 错误
  4. 三层架构下的EntityFramework codefirst
  5. js init : function ()
  6. iOS 关于objectForKey返回类型是不是mutable
  7. session的方法
  8. 调整iFrame高度
  9. html中出现的script失效
  10. Cisco IOS Security command Guide
  11. jquery.cookie.js存与取以及过期时间设置
  12. 百练 2973 Skew数 解题报告
  13. java集合类深入分析之Queue篇(Q,DQ)
  14. Android 中 SearchView
  15. 【源码学习】redux-thunk
  16. [CodeChef-CAPTCITI]Snakes capturing the Mongoose Cities
  17. DWR第四篇之对象传参
  18. 反射中Class.forName()和classLoader的区别
  19. Linux期中总结
  20. bug: &#39;\xff&#39; 转换成-1 而不是255

热门文章

  1. 路由器桥接(WIFI无线中继)设置及摆放位置图解
  2. Android Theme主题
  3. window.location.assign和window.location.href区别
  4. Dockerfile指令及docker的常用命令
  5. Never Go Away
  6. 第二篇、HTML
  7. Ansible 实战之部署Web架构
  8. centos 中 增强web服务器安全
  9. 剑指offer之 旋转数组的最小数字
  10. stdcall、cdecl详解(以及WINAPI和CALLBACK之类的宏对应什么)