【发布时间】:2019-04-10 23:18:34
【问题描述】:
我需要在例程中传递一个数组,然后读取它的大小。
typedef struct
{
unsigned char Name[20];
}Sensors_;
extern volatile Sensors_ Sensor;
然后在源文件中
我正在使用这种方法
void Save(){
SaveValue(Sensor.Name)
}
void SaveValue(volatile unsigned char Array[]){
printf("%d",sizeof(Array));
}
我的数组的实际大小是 20 个字符,但我得到了输出编号 2。 为什么会这样?我在我的方法中传递我的数组,所以大小与我的第一个数组不同吗?
我也不想将它作为 Sensors_ 传递,因为它也是其他名称的通用方法。
【问题讨论】:
-
你可以传递一个
struct,里面有一个数组。例如struct{int num[10]} array;