1.c语言中一共有32个关键字,分别是:

  auto、int、double、long、char、short、float、unsigned、signed、sizeof、extern、

  static、goto、if、else、struct、typedef、union、enum、switch、case、break、

  default、do、while、const、register、volatile、return、void、for、continue。

注意:define、include这些带#号的都不是关键字,是预处理指令。

2.定义与声明
  定义   是创建一个对象并为之分配内存。  如:int   a;
  声明   是告诉编译器在程序中有这么一个对象,并没有分配内存。   如: extern   int    a;
 
3.对于register这个关键字定义的变量,不能进行取地址运算(&),因为对于x86架构来说,地址都是在内存中的,不是在寄存器中的,所以对寄存器进行取地址是没有意义的。并且应该注意的是给register定义的变量,应该赋一个比寄存器大小 要小的值。注意:register只是请求寄存器变量,但是不一定申请成功
 
4.关键字static:=
   对于static有两种用法:
   a.修饰变量:对于静态全局变量和静态局部变量,都有一个特点就是不能被作用域外面,或外文件调用(即使是使用了extern也没用)。原因就是它是存储在静态存储区中的。对于函数中的静态局部变量还有一个问题,就是它是存在静态存储区的,即使函数结束栈区收回,这个变量的值也不改变。static int i=0;  这是一条初始化语句  而不是一条赋值语句  所以跟i=0不一样的。
   b.修饰函数 :是定义为静态函数,使函数只能在文件内部使用,这样不同文件中的函数名就不怕重名了。原因也是相同的,就是static修饰的一切都是在静态存储区中的。

最新文章

  1. ABP框架理论学习之Hangfire集成
  2. 获取打开指定Action的所有应用包名
  3. oracle之集合操作函数---minus、union、intersect
  4. 当匿名类型遇上Distinct
  5. IM系统中聊天记录模块的设计与实现
  6. 如何设置SecureCRT通过代理连接SSH[转]
  7. [cocos2d] 显示状态与文字
  8. Mac OS X 开启SSH服务
  9. 第二十二章 Django会话与表单验证
  10. Node.js 系统
  11. Java集合框架详解(全)
  12. python 迭代器、生成器、枚举的使用
  13. hotspot目录结构
  14. erlang开发工具之intellij idea基本使用
  15. 入门Spring ioc
  16. 项目管理利器maven学习笔记(一):maven介绍及环境搭建
  17. C# winform 选择文件保存路径
  18. elasticSearch6源码分析(9)ActionModule
  19. 【LeetCode OJ】Longest Palindromic Substring
  20. 【nodeJs】nodejs

热门文章

  1. C++之编译器与链接器工作原理
  2. write-ups
  3. sicily 1153. 马的周游问题
  4. sqlserver2008 死锁解决方法及性能优化方法
  5. 应用程序有bug崩溃重启的案例
  6. php性能的问题
  7. Linus 谈软件开发管理经验
  8. 596. Classes More Than 5 Students
  9. Java学习笔记(十三)——通过Netbeans开发环境生成oracle数据库中表的对应hibernate映射文件
  10. 使用JavaScript实现长方形、直角三角形、平行四边形、等腰三角形、倒三角、数字三角形