c语言多文件操作问题:怎样给头文件中声明的(数组)变量赋值?
c语言多文件操作问题:怎样给头文件中声明的(数组)变量赋值?我刚从网上博客里学到一点关于多文件操作的例程及理论,但第一次试用就碰到这个问题,请高手指教,谢谢!!!!!!!...
c语言多文件操作问题:怎样给头文件中声明的(数组)变量赋值?我刚从网上博客里学到一点关于多文件操作的例程及理论,但第一次试用就碰到这个问题,请高手指教,谢谢!!!!!!!!!!!!!!!!!!!!!!!!!
展开
展开全部
如果数据放在DATA.c 中, DATA.c 用宏保护起来,以便包含操作只做一次。
例如:
#ifndef _DATA_C
#define _DATA_C
unsigned char code picture[64][16]={ 数据照抄} ;
#endif
其它.h,.c 文件 的头部,只要 写 #include "data.c" 就包含了它,相互无冲突。
这个数组是全局量。所以你不能在全局域再定义一个同名变量。
picture 是2维数组,你声明的 unsigned char code *ptr; 不能初始化为 *ptr=picture;
你要分别写:
声明 unsigned char code *ptr;
语句 ptr=&picture[0][0]; 或 ptr=&picture[63][0]; 之类形式。
如果 unsigned char code picture[64][16]; 声明在别的头文件中,那么你无法用声明与初始化的方法赋值。你可以把 DATA.c 里的 picture 换个名字,例如 pictureV。
要用 picture数据前,可以把pictureV赋值给picture。for (i=0;i<64;i++) for(j=0;j<16;j++) picture[i][j]=pictureV[i][j]; 或直接用pictureV。
例如:
#ifndef _DATA_C
#define _DATA_C
unsigned char code picture[64][16]={ 数据照抄} ;
#endif
其它.h,.c 文件 的头部,只要 写 #include "data.c" 就包含了它,相互无冲突。
这个数组是全局量。所以你不能在全局域再定义一个同名变量。
picture 是2维数组,你声明的 unsigned char code *ptr; 不能初始化为 *ptr=picture;
你要分别写:
声明 unsigned char code *ptr;
语句 ptr=&picture[0][0]; 或 ptr=&picture[63][0]; 之类形式。
如果 unsigned char code picture[64][16]; 声明在别的头文件中,那么你无法用声明与初始化的方法赋值。你可以把 DATA.c 里的 picture 换个名字,例如 pictureV。
要用 picture数据前,可以把pictureV赋值给picture。for (i=0;i<64;i++) for(j=0;j<16;j++) picture[i][j]=pictureV[i][j]; 或直接用pictureV。
追问
你好!谢谢你的回复。我看得不是太懂,但是我想先让你帮我矫正一些原则性问题,看看我的理解对不对。我把多文件操作的思路归结为3点:
①先在头文件里声明各个变量、函数及定义宏;
②然后在源程序里定义各个变量及函数;
③最后,在主文件里用main函数控制各个功能函数。
这是我从别人博客文章里总结出来的,不知道是否有问题,敬请老师指教!!祝老师工作顺利!!!!!!谢谢!!!!!!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询