Ich arbeite an einer Aufgabe zum Erstellen eines MIPS-Simulators in C++. Ich habe
Fehler: ‚Provisorien‘ keinen Typen
Fehler beim Namen nennen: ‚gerettet‘ Namen hat keinen Typen
Ich bin die Umsetzung nur das arithmetische Teil und bin mit drei Dateien, main.cpp, al.cpp, al .h.C++: Fehler nennt keinen Typ
al.h
#ifndef AL_H
#define AL_H
#include<vector>
#include<string>
#include<cstdlib>
#include<iostream>
int *temporaries;
int *saved;
typedef struct
{
std::string name;
int value;
}label;
//function declarations
#endif
main.cpp
#include "al.h"
#include<fstream>
std::vector<label> labels;
temporaries=malloc(10*sizeof(int));
saved=malloc(10*sizeof(int));
//main()
al.cpp
#include "al.h"
using namespace std;
//function definitions
ich g ++ bin mit
g++ al.cpp main.cpp al.h
Ich bin nur ein Anfänger im Progammieren. Es wird großartig sein, wenn mir jemand helfen kann.
bearbeiten
extern
in den Header-Dateien verwendet und erklärt die Variablen in den Quelldateien wie Paddy zeigte und es wurde behoben. Danke für die Hilfe!
Warum verwenden Sie "int * gespeichert" statt 'std :: vector gespeichert? Wollen Sie tatsächlich globale Variablen (wenn Sie die Frage nicht verstehen, ist die Antwort nein)? Wenn du aus irgendeinem Grund wirklich "malloc" willst, dann musst du 'static_cast (Std :: malloc (10 * sizeof * gespeichert))' '' '' ' In C++ können Sie einfach 'struct label' haben, das Sie nicht tun müssen, um die TypeDef-Sache zu tun. –
Ich denke, dass 'gespeichert' sollte eine globale Variable sein, wie ich es in 'al.cpp' sowie in 'main.cpp' ändern. Was malloc betrifft, habe ich es mir einfach als eine Möglichkeit angesehen, "gespeichert" zu initialisieren. Ich habe 'vector gespeichert' in 'al.h' und 'saved.resize (10)' in 'main.cpp' vorher verwendet, aber ich habe den gleichen Fehler. –
Sie können eine Variable in main erstellen und sie an andere Funktionen übergeben, oder wenn sie zusammenhängen, aber sie in einer 'Klasse' zusammen. Globale Variablen sind (fast) nie die Antwort. 'malloc' ist eine sehr niedrige Lösung, die nicht notwendig erscheint (und Kopfschmerzen für neue Programmierer). Wenn Sie wissen, dass Ihre Typen eine feste Größe haben, können Sie einfach auch ein 'std :: array gespeichert 'verwenden. –