C语言中变量和函数类型
2012-08-18 20:53
288 查看
extern和static都可以用来修饰变量和函数,有什么区别呢,用法是什么样的呢。
1.变量
按存储类型划分,C语言中变量的类型有4中,分别为
自动变量 关键字auto,该关键字是可以省略的,比如 int i;变量i就是自动变量
外部变量 关键字extern,之所以称外部变量,是因为变量要在外部,即其他文件中使用。全局变量一般使用外部变量存储。如果外部变量使用在前,定义在后,或者引用其他源文件中的外部变量,必须使用extern对其进行外部声明。
静态变量 分为静态全局变量和静态局部变量。静态全局变量只能在当前源文件内使用。静态局部变量的作用域是调用该变量的函数体,但程序的整个运行过程中,它自始至终占用被分配的内存空间。
寄存器变量 变量放于cpu寄存器内,由于编译器已经对变量进行了优化处理,所以基本不用到此类类型。
关于全局变量个局部变量,在同一个原文件中,允许全局变量和局部变量同名,在局部变量的作用域内,全局变量不起作用。
2.函数
函数分外部函数和内部函数。
外部函数:函数可以被其他源文件使用,定义外部函数,在函数前面加关键字extern,通常省略extern,默认为外部函数。、
内部函数:函数只能被本文件的其他函数调用,定义内部函数时,在函数前面加关键字static。
之所以要弄这么多的类型出来,是为了满足不同的功能需要,同时增强源文件的可读性、独立性和可移植性。
1.变量
按存储类型划分,C语言中变量的类型有4中,分别为
自动变量 关键字auto,该关键字是可以省略的,比如 int i;变量i就是自动变量
外部变量 关键字extern,之所以称外部变量,是因为变量要在外部,即其他文件中使用。全局变量一般使用外部变量存储。如果外部变量使用在前,定义在后,或者引用其他源文件中的外部变量,必须使用extern对其进行外部声明。
静态变量 分为静态全局变量和静态局部变量。静态全局变量只能在当前源文件内使用。静态局部变量的作用域是调用该变量的函数体,但程序的整个运行过程中,它自始至终占用被分配的内存空间。
寄存器变量 变量放于cpu寄存器内,由于编译器已经对变量进行了优化处理,所以基本不用到此类类型。
关于全局变量个局部变量,在同一个原文件中,允许全局变量和局部变量同名,在局部变量的作用域内,全局变量不起作用。
2.函数
函数分外部函数和内部函数。
外部函数:函数可以被其他源文件使用,定义外部函数,在函数前面加关键字extern,通常省略extern,默认为外部函数。、
内部函数:函数只能被本文件的其他函数调用,定义内部函数时,在函数前面加关键字static。
之所以要弄这么多的类型出来,是为了满足不同的功能需要,同时增强源文件的可读性、独立性和可移植性。
相关文章推荐
- C语言 编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数。
- C++ c++与C语言的区别(struct类型的加强,函数-变量类型加强,bool类型)
- C语言技巧【枚举作为函数变量类型】【数据输入与输出】【do while循环体内scanf函数被跳过,循环结束】【用const修饰函数的参数】
- C语言实现 编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数。
- C语言实现的线性表 函数形参:指针类型与变量类型的区别 (SqList *L)(SqList L)
- C语言学习4: 函数返回值与传入参数,关于函数值传递和类型隐性转换,变量不同的作用域,static变量,多文件编译例如两个C文件,显示函数调用语句跳转,递归,斐波那契数列,多文件编译相同变量的问题。
- C语言 第二章 数据类型、变量和输入函数
- 【C语言】编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数。(辗转相除法和常规求法)
- 浅谈c语言的变量与函数存储类型
- javascript 变量、数据类型、语句、函数小总结 01
- pro c中varchar类型变量的arr函数是做什么用?
- Javascript基础编程の变量、对象、数据类型及函数
- C语言困惑 - 变量与类型同名问题
- c语言——字符串变量、函数
- C语言的那些秘密之---函数返回局部变量
- JavaScript的小小总结!变量类型、对象声明、this用法、原型、匿名函数、闭包和自执行函数
- 输出C语言中 变量的类型
- C语言之从内存角度理解不同类型的变量
- js中判断变量类型函数typeof的用法总结
- 嵌入式系统开发人员C语言测试题(数据类型和变量)