extern 用来定义一个或多个变量。其后跟数据类型名和初始值。例如:

extern int a =10

它与 int,long long int,double,char的本质区别,在于 extern 可以定义未声明类型的变量。举个例子:

#include <stdio.h>
int a = 10;
long long int b = 100;
double c = 1.1;
char d = 5;
/* 以上各函数前均可加入 extern ,其意义不会改变。 */
extern a = 10;
extern b;

此处未声明变量 a 的类型,这是 c 语言语法所认可的。而且,在声明变量的同时,同样可以不设定初始值。

但是请注意,这是一种不好的习惯,因为它会降低代码的可读性。因此应尽量避免此用法。

设定初始值不同于声明变量。声明变量时,可以不为其设定初始值。

而设定初始值指定了变量在其值受到改变前的状态。

例子:

extern int a /* 这时没有指定初始值 */
extern int a = 10 /*这时指定 a 的初始值为 10 */

如果没有为变量指定初始值,那么它的初始值将根据数据类型而指定。例如类型为 int 的,初始值为 0 ;类型为 double 的,初始值为 0.00000 ,因为它是一个浮点数。

最新文章

  1. TM1680主从I2C设置.
  2. 工作总结:检查字符串合法性(C++)
  3. http://blog.csdn.net/luoshengyang/article/details/6651971
  4. python tcp socket 多线程
  5. MVC5 + EF6酒店项目笔记
  6. linux 磁盘加密和tpm搭配使用1
  7. selenium+requests访问微博
  8. 自己动手写CPU(基于FPGA与Verilog)
  9. 2015多校联赛 ——HDU5288(数学)
  10. Namenode启动报错Operation category JOURNAL is not supported in state standby
  11. Scrapy框架基本使用
  12. Swagger相关配置记录
  13. R语言学习笔记(五)绘图(1)
  14. Introduction to Cryto &amp; Crptocurrencies Lecture 1
  15. 弱网测试—Network-Emulator-Toolkit工具
  16. linux网络编程IO模型
  17. oracle存储过程-获取错误信息
  18. CTabCtrl控件标签的相关设置
  19. ExtJs 通过分析源代码解决动态加载Controller的问题
  20. 通过cordova将vue项目打包为webapp

热门文章

  1. 关于C#异步编程你应该了解的几点建议
  2. python列表(list)
  3. 【uuid】- 唯一标识
  4. 「博客美化」I 页面的CSS
  5. llinux重启、用户切换、注销命令
  6. 【原创】(十五)Linux内存管理之RMAP
  7. 微信小程序开发笔记(二)
  8. docker 修改实例名称
  9. schedule of 2016-10-17~2016-10-23(Monday~Sunday)——1st semester of 2nd Grade
  10. Java虚拟机OOM问题和四大引用问题简述