C语言中static的作用
1 修饰变量,变量分为局部变量和全局变量,它们在内存的静态区。
静态全局变量,作用域仅限于变量定义的文件中,其他文件即使用extern声明也无法使用。作用域从定义之处开始,到文件结尾处。
静态局部变量,在函数体中定义,就只能在这个函数中使用,同一文档的其他函数也使用不了。由于static变量在内存静态区,所以函数结束,静态变量的值也不会销毁,函数下次使用仍然用到这个值。
2 修饰函数
函数前加static,函数作用域仅局限于本文件,又称内部函数。使用内部函数好处:不同的人编写不同函数,不用担心自己的函数是否会与其他文件中的函数同名。
枚举与宏#define的区别:
1.#define在预编译是进行替换,而枚举则是在编译时确定其值。
2.枚举可以一次定义多个,而#define则只能定义一个。
3.一般编译器可以调试枚举,不能调试#define宏常量。