全局变量

·定义在函数外面的变量是全局变量

·全局变量具有全局的生存期和作用域

  ·它们与任何函数都无关

  ·在任何函数内部都可以使用它们

全局变量初始化

·没有做初始化的全局变量会得到0值

  ·指针会得到NULL值

·只能用编译时刻已知的值来初始化全局变量

·它们的初始化发生在main函数之前

被隐藏的全局变量

·如果函数内部存在与全局变量同名的变量,则全局变量被隐藏

静态本地变量-1

·在本地变量定义是加上static修饰符就成为静态本地变量

·当函数离开的时候,静态本地变量会继续存在并保持其值

·静态本地变量的初始化只会在第一次进入这个函数做,以后进入函数时会保持上次离开时的值

静态本地变量-2

·静态本地变量实际上是特殊的全局变量

·它们位于相同的内存区域

·静态本地变量具有全局的生存期,函数内的局部作用域

*返回指针的函数

·返回本地变量的地址是危险的(每次离开后,本地变量分配的内存被释放,下次重新进入某函数时,又重新分配内存给本地变量)

·返回全局变量或静态本地变量的地址是安全的

·返回在函数内malloc的内存是安全的,但是容易造成问题

·以上的方法都不建议,最好的做法就是返回传入的指针

tips

·不要使用全局变量来在函数间传递参数和结果

·尽量避免使用全局变量

  ·丰田汽车的案子

· *使用全局变量和静态本地变量的函数是线程不安全的

最新文章

  1. 前端自动化构建工具gulp的使用总结
  2. memcache/memcached安装教程并应用Tinkphp3.2
  3. Sharif University CTF 2016 -- Android App
  4. iOS 中contraints居中对齐的一点心得
  5. VMware 虚拟机Red Hat 5.9 交换区及硬盘空间调整
  6. TCL/Expect交互式自动化测试概要 - - ITeye技术网站
  7. 将requirejs进行到底(一)
  8. [转]C++ list 类学习笔记
  9. 将主机IDS OSSEC日志文件存入MYSQL的方法
  10. Android 开发佳站3
  11. swift 进阶笔记 (一) —— 可选型
  12. PHP多维数组元素操作类
  13. Java 泛型 泛型方法
  14. mysql: [Warning] Using a password on the command line interface can be insecure. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  15. Shell 常见理论问答
  16. (转) AdversarialNetsPapers
  17. thymeleaf 字面量
  18. H.264 White Paper学习笔记(一)总览
  19. 抓取错误之onerror
  20. idea 配置http代理

热门文章

  1. Activiti工作流引擎学习(一)
  2. Android生命周期函数执行顺序
  3. JDK源码系列(一) ------ 深入理解SPI机制
  4. PRML第一章读书小结
  5. Java 8 访问接口的默认方法
  6. Java面试思路
  7. BeetleX之XRPC使用详解
  8. c语言中自定义bool类型模板
  9. Python 超级玛丽代码实现:人物行走和碰撞检测
  10. Linux-Cacti监控{Verson:1.2.8}