在一个.c文件中定义一个数组并在其他文件中引用,可以使用外部链接(external linkage)来实现。外部链接意味着该变量或函数可以在程序的其他文件中访问。为了在其他文件中使用这个数组并使用sizeof求数组长度,你需要遵循以下步骤:
1. 在定义数组的.c文件中,使用`extern`关键字声明数组,这样编译器就知道这个数组在程序的其他部分定义。例如:
```c
// file1.c
unsigned char const keys[] = {key1, key2, key3, key4, ...};
```
2. 在其他.c文件中,使用`extern`关键字声明相同的数组,这样编译器就知道这个数组在程序的其他部分定义,而不是在当前文件中定义。例如:
```c
// file2.c
extern unsigned char const keys[];
```
3. 在其他.c文件中,你可以使用sizeof运算符来获取数组的长度。例如:
```c
// file2.c
int length = sizeof(keys) / sizeof(keys[0]);
```
这里,`sizeof(keys)`将返回整个数组的大小,而`sizeof(keys[0])`将返回数组中单个元素的大小。将整个数组的大小除以单个元素的大小将给出数组的长度。
需要注意的是,如果数组在定义时没有指定大小,编译器会根据初始化的元素个数自动计算数组的大小。因此,在这种情况下,即使在其他文件中使用`extern`声明数组,也可以使用sizeof运算符来获取数组的长度。
总之,要在其他文件中引用一个数组并使用sizeof求数组长度,你需要:
1. 在定义数组的.c文件中使用`extern`声明数组。
2. 在其他.c文件中使用`extern`声明相同的数组。
3. 使用sizeof运算符来获取数组的长度。
这样,即使数组在定义时没有指定大小,也可以在其他文件中获取数组的长度。
在一个.c文件中定义一个数组并在其他文件中引用,可以使用外部链接(external linkage)来实现。外部链接意味着该变量或函数可以在程序的其他文件中访问。为了在其他文件中使用这个数组并使用sizeof求数组长度,你需要遵循以下步骤:
1. 在定义数组的.c文件中,使用`extern`关键字声明数组,这样编译器就知道这个数组在程序的其他部分定义。例如:
```c
// file1.c
unsigned char const keys[] = {key1, key2, key3, key4, ...};
```
2. 在其他.c文件中,使用`extern`关键字声明相同的数组,这样编译器就知道这个数组在程序的其他部分定义,而不是在当前文件中定义。例如:
```c
// file2.c
extern unsigned char const keys[];
```
3. 在其他.c文件中,你可以使用sizeof运算符来获取数组的长度。例如:
```c
// file2.c
int length = sizeof(keys) / sizeof(keys[0]);
```
这里,`sizeof(keys)`将返回整个数组的大小,而`sizeof(keys[0])`将返回数组中单个元素的大小。将整个数组的大小除以单个元素的大小将给出数组的长度。
需要注意的是,如果数组在定义时没有指定大小,编译器会根据初始化的元素个数自动计算数组的大小。因此,在这种情况下,即使在其他文件中使用`extern`声明数组,也可以使用sizeof运算符来获取数组的长度。
总之,要在其他文件中引用一个数组并使用sizeof求数组长度,你需要:
1. 在定义数组的.c文件中使用`extern`声明数组。
2. 在其他.c文件中使用`extern`声明相同的数组。
3. 使用sizeof运算符来获取数组的长度。
这样,即使数组在定义时没有指定大小,也可以在其他文件中获取数组的长度。
举报