我理解现有的代码。于是我意识到&time
这是班级的地址Time
。如果注释掉unsigned long time
,会出现错误
不存在从“Time”到“unsigned long”的合适转换函数。
因此,我可以猜测该类正在转换为unsigned long
.但是,如果类包含多个变量和几个函数,那么到底可以在那里转换什么。也许这个问题很愚蠢,但请像菜鸟一样解释它,或者提供有关该主题的文献的链接,最好有足够的数量。
class Time {
private:
unsigned char sec;
unsigned char min;
unsigned char hour;
unsigned char ...
public:
char data_bufer[7];
char fl_read+end;
char fl_read;
unsigned char long_date;
void init(void);
void read(void);
void...
unsigned char in_BCD_format(unsigned char data);
};
External_bus {
void FRam_Read_long (unsigned long, void*);
};
extern Time time;
extern External_bus ext_buss;
void External_Bus::Flash_Read_long(unsigned char Adr, void* ptr){
unsigned char* Adr_byte;
Adr_byte = (unsigned char*)ptr;
somefunction(Adr, *Adr_byte)
}
void main_func{
unsigned char current_oscill;
unsigned long time;
unsigned long event;
line_counter = 0;
if (something){
current_oscill = variable;
while(condition){
ext_buss.Flash_Read_long(current_oscill, &time); //по сути сюда приходит какое-то значение, но что именно?
}
}
}