外部全局变量定义在C文件还是头文件
全局变量定义在C文件跟定义在头文件里面有什么不一样?一般怎么用?比如说我要写5110液晶,得自己定义字符数据,这些数据用一个数组定义,那么应该在什么文件(.c还是.h)定...
全局变量定义在C文件跟定义在头文件里面有什么不一样?一般怎么用?
比如说我要写5110液晶,得自己定义字符数据,这些数据用一个数组定义,那么应该在什么文件(.c还是.h)定义呢? 展开
比如说我要写5110液晶,得自己定义字符数据,这些数据用一个数组定义,那么应该在什么文件(.c还是.h)定义呢? 展开
展开全部
如果全局变量只在你编写的文件中使用,就在源文件中定义;如果团队合作,别人的代码需要用你的全局变量,就在头文件中定义,那样别人只需包含你的头文件,然后声明一下变量即可
更多追问追答
追问
比如:
我在源文件5110.c中声明
#include "5110.h"
extern uchar code font_code[][16];
在头文件5110.h中这样给它初始化
uchar code Ruo[][16]={{0x10,0x28,0x27,0x22,0xF6,0x2A,0xA2,0x6A,0x24,0x23,0xF2,0x26,0x2A,0x22,0x02,0x00,},
{0x21,0x21,0x11,0x09,0xFD,0x4B,0x49,0x49,0x49,0x49,0x49,0x49,0xF9,0x01,0x01,0x00}};
出错:FONT_CODE.C(4): error C279: 'Ruo': multiple initialization
追答
C语言中数组在定义时可以像你这样初始化,不能在定义之后,或者声明之时这样初始化:
uchar code Ruo[][16]={{0x10,0x28,0x27,0x22,0xF6,0x2A,0xA2,0x6A,0x24,0x23,0xF2,0x26,0x2A,0x22,0x02,0x00,},
{0x21,0x21,0x11,0x09,0xFD,0x4B,0x49,0x49,0x49,0x49,0x49,0x49,0xF9,0x01,0x01,0x00}};
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在一个函数内部定义的变量只在本函数范围内有效(即只在本文件内有效),因此也叫作局部变量。
而在函数之外定义的变量是外部变量,也称为全局变量。全局变量可以为本文件内其他函数所公用。它的作用范围为从定义变量的位置开始到本源文件结束。
“5110液晶”这个我觉得应该在头文件里定义。
而在函数之外定义的变量是外部变量,也称为全局变量。全局变量可以为本文件内其他函数所公用。它的作用范围为从定义变量的位置开始到本源文件结束。
“5110液晶”这个我觉得应该在头文件里定义。
追问
我提问的情况是,在不同的文件之间全局变量的调用。那几句话我在书上看了很多次了。我要的是定义一堆数据以便调用。它们的值不用改变。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是常量 就定义在头文件里面 如果不是const变量就定义在源文件里面。
追问
uchar code Ruo[][16]={{0x10,0x28,0x27,0x22,0xF6,0x2A,0xA2,0x6A,0x24,0x23,0xF2,0x26,0x2A,0x22,0x02,0x00,},
{0x21,0x21,0x11,0x09,0xFD,0x4B,0x49,0x49,0x49,0x49,0x49,0x49,0xF9,0x01,0x01,0x00}};
这样算不算常量
追答
不算常量,我说的常量是加const的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
都可以,如果不是特别必要,尽量少用全局变量。
追问
用了当然是必要的啦
追答
定义在头文件里的话,include头文件就可到处使用这个变量,如果是在.c中定义,还需要在使用该变量的.c文件中用extern关键字声明该变量。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询