Error[Pe041]: expression must have arithmetic or pointer type E:\Work\Projects\DELTA_SKREPER\DELTA_SKREPER\proc_device.c 167
Ошибку выдает при разных вариантах.
Не могу понять причину.
CODE
//========================================================================
typedef struct time_t
{
u08 hours;
u08 minutes;
u08 seconds;
} time_t;
extern struct time_t start_time_list [];
//========================================================================
#pragma location = 0x14
__eeprom struct time_t ee_start_time_list [24] =
{
0, 0, 0,
1, 0, 0,
2, 0, 0,
3, 0, 0,
4, 0, 0,
5, 0, 0,
6, 0, 0,
7, 0, 0,
8, 0, 0,
9, 0, 0,
10, 0, 0,
11, 0, 0,
12, 0, 0,
13, 0, 0,
14, 0, 0,
15, 0, 0,
16, 0, 0,
17, 0, 0,
18, 0, 0,
19, 0, 0,
20, 0, 0,
21, 0, 0,
22, 0, 0,
23, 0, 0,
};
for (u08 i = 0; i < 24; i++)
{
// if (ee_start_time_list [i] != start_time_list [i])
// ee_start_time_list [i] = start_time_list [i];
struct time_t __eeprom *ptr_1 = ee_start_time_list;
struct time_t *ptr_2 = start_time_list;
if (*ptr_1 != *ptr_2)
*ptr_1 = *ptr_2;
ptr_1++;
ptr_2++;
}
Ошибка появляется при проверке if. На этот кусок кода ошибки нет.
Код
for (u08 i = 0; i < 24; i++)
{
//start_time_list [i] = ee_start_time_list [i];
struct time_t *ptr_1 = start_time_list;
struct time_t __eeprom *ptr_2 = ee_start_time_list;
*ptr_1 = *ptr_2;
ptr_1++;
ptr_2++;
}
{
//start_time_list [i] = ee_start_time_list [i];
struct time_t *ptr_1 = start_time_list;
struct time_t __eeprom *ptr_2 = ee_start_time_list;
*ptr_1 = *ptr_2;
ptr_1++;
ptr_2++;
}