C Union mellan integer och pekare, wtf.
Postat: 6 november 2018, 22:14:19
Hur fn_n gör man.
kompilator gcc (microchip mplab) PIC32
Hare en strukt som ser ut så här
fyller på med lite testdata
och får felet på de två första raderna, dvs {101.....:
kompilator gcc (microchip mplab) PIC32
Hare en strukt som ser ut så här
Kod: Markera allt
typedef struct
{
uint16 MB_reg_u16; // Externt publicerat modbusregister
uint16 options_u16; //optioner för källa, extern eller lokal mm
union
{
uint32 source_idx_u32; //index till data i tillexempel global.data för fjärråtkomst från slav
uint16 *source_ptr; //pekare till lokala data
};
} MB_reg_access_struct;
Kod: Markera allt
const MB_reg_access_struct MB_reg_access_st[NUM_F_PMF_ADR] =
{
{101, 0, {&global_data.MSTstatus_u16}},
{102, 0, {(uint16*)&global_data.Sensors.Sens_arr_s16[MST_VB_IN] }},
{100, 0,{ 100}},//((void*)&global_data.SLVstatus_u16) - ( (void*) &global_data) /2},
{103, 0, {100}},//((void*)&global_data.Evap_temp_s16) - ( (void*) &global_data) /2},
};
Kod: Markera allt
..\COMMON\f_omf.c:47:2: warning: initialization makes integer from pointer without a cast
..\COMMON\f_omf.c:48:2: warning: initialization makes integer from pointer without a cast