Ich habe ein Problem bei der Übergabe eines Struct als Argument für eine Funktion. Ich habe die Struktur wie folgt definiert:Struct als Argument in eine Funktion
struct message{
static unsigned int last_id;
unsigned int id;
std::string msg;
std::string timestamp;
message(void)
{
}
message(const std::string& recvbuf_msg,const std::string& a_timestamp) :
msg(recvbuf_msg), timestamp(a_timestamp), id(++last_id)
{
}
};
und die fuction Definition wie folgt:
void print_msg(message *myMsg,std::string recv_usrn){
cout << "#" << myMsg->id << " @" << recv_usrn << ": " << myMsg->msg << " at " << myMsg->timestamp << endl;
}
Im Haupt ich diese verwendet haben, die Funktion wie:
message myMsg;
string recv_usrn;
print_msg(&myMsg,recv_usrn);
Und das Problem ist, dass es diese Fehler gibt:
C2065: 'message': nicht deklarierter Bezeichner
C2065: 'myMsg': nicht deklarierter Bezeichner
C2182: 'print_msg': illegale Nutzung des Typs 'ungültig'
Haben Sie vergessen, die Erklärung o einschließen f "Nachricht"? Poste bitte [MCVE]. –
Als ich 'message myMsg' schrieb, wollte ich nur klarstellen, dass 'myMsg' eine Art Nachricht war. Es wurde zuvor in den Code eingegeben. – 19mike95
Um die Nachrichtenstruktur zu verwenden, müssen Sie sie zuerst definieren. Ist es vor der Definition (Implementierung) der Funktion 'print_msg' definiert? Ist die Struktur definiert, bevor Sie die Variable 'myMsg' vor dem Aufruf von' print_msg' definieren? –