c语言中如何引用另一个源文件中定义的数组

我想在一个文件中定义:
char scomm[28][4];用来存放内容,然后我想在另一个文件中使用这个scomm里的内容,那么我在另一个文件中引用前声明是这样的吗?
extern char scomm[];
但这样出现下面编译错误:
warning C4047: 'function' : 'const char *' differs in levels of indirection from 'char '
如果我改成:
extern char scomm;
又出现下面错误:
error C2109: subscript requires array or pointer type
请问该如何引用呢?
使用extern char scomm[28][4];提示下面:
warning C4133: 'function' : incompatible types - from 'int [4]' to 'const char *'\
使用extern char *scomm错误提示:
warning C4047: 'function' : 'const char *' differs in levels of indirection from 'char '
warning C4024: 'strcpy' : different types for formal and actual parameter 2

C语言中是可以引用另外一个源文件的全局数组的,但是不能引用局部数组。

 

引用方式举例如下:

        设a.c文件有有数据定义

        int  array1[10];

        现有b.c文件中想访问a.c中的array1数组

        那么b.c文件中首先添加如下语句

        extern int array1[10];

        然后就可以访问数组array1和它的元素了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-02

C语言中是可以引用另外一个源文件的全局数组的,但是不能引用局部数组。

引用方式举例如下:

    设a.c文件有有数据定义

    int  array1[10];

    现有b.c文件中想访问a.c中的array1数组

    那么b.c文件中首先添加如下语句

    extern int array1[10];

    然后就可以访问数组array1和它的元素了。

本回答被网友采纳
第2个回答  推荐于2017-11-25
extern char scomm[28][4];

警告可以无视。另外,这三个警告,跟你的extern char scomm[28][4];是没有关系的。本回答被提问者采纳
第3个回答  2013-05-03
extern char *scomm;试一下
第4个回答  2013-05-03
extern char scomm[28][4]; //这样
相似回答