追问
那如果要用到全局变量,要把它写在C文件中?
那全局变量的主要作用其实就是跨文件作用域来传递一些东西,写在C文件中,不太好在别的文件中引用吧。
用的时候写extern进去?
感觉全局变量在C里用起来比较麻烦,有时候很顺手就会在头文件中写一些全局变量定义,然后到用的时候发现各种连接错误。
想知道有没有比较标准的处理全局变量的方式?感觉它用起来特麻烦。
按照顺手的方式去写,写完了就错了。追答
全局变量是不推荐使用的,尽量使用局部变量,这可以使错误局部化。
当必须使用全局变量时:
1.如果全局变量只在某个实现文件中发挥作用,则全局变量应该定义在该实现文件,并且为static变量,以此将该变量作用于限定为该文件。
2.如果全局变量被多个实现文件中使用,则可以将全局变量声明放在头文件中,并将定义单独放在一个实现文件中,以后其他需要这个全局变量的实现文件只需包含这个头文件即可直接使用。
声明全局变量的语法:
extern类型变量名;
定义全局变量的语法:
类型变量名[=初始式];
extern类型变量名=初始式;
标准的头文件一般只包括:
1.结构体等复合结构定义
2.函数声明
3.常量宏
全局变量是不推荐使用的,尽量使用局部变量,这可以使错误局部化。
当必须使用全局变量时:
1.如果全局变量只在某个实现文件中发挥作用,则全局变量应该定义在该实现文件,并且为static变量,以此将该变量作用于限定为该文件。
2.如果全局变量被多个实现文件中使用,则可以将全局变量声明放在头文件中,并将定义单独放在一个实现文件中,以后其他需要这个全局变量的实现文件只需包含这个头文件即可直接使用。
声明全局变量的语法:
extern类型变量名;
定义全局变量的语法:
类型变量名[=初始式];
extern类型变量名=初始式;
标准的头文件一般只包括:
1.结构体等复合结构定义
2.函数声明
3.常量宏