error c2065 nicht deklarierte Bezeichner
-
hi, ich hab folgendes Problem:
ich benutze ein macro um 2 werte zu überprüfen und den keineres wieder zurück zu geben.
Beim Compilieren bekomme ich dann folgende Fehler:error C2065: 'a': nichtdeklarierter Bezeichner error C2065: 'b': nichtdeklarierter BezeichnerHier der gesamte Quellcode:
#include <iostream> using std::cout; using std::cin; using std::endl; #define MIN (a, b) ( ((a) < (b)) ? (a) : (b) ) int main( ) { int ivar1, ivar2, ivar3; ivar1 = 1; ivar2 = 2; ivar3 = MIN(ivar1, ivar2); cout << "... ivar3 = " << ivar3 << endl; cin.get( ); return 0; }greetz
-
#define MIN(a,b) \\ << kein Leerzeichen!Bei Makros dürfen zwischen dem Namen und den Parametern keine Leerzeichen stehen.
Allgemein ist von der Verwendung solcher Makros abzuraten. Benutz lieber std::min aus <algorithm>
-
alex4cpp schrieb:
ich benutze ein macro um 2 werte zu überprüfen und den keineres wieder zurück zu geben.
Makros sollte man meiden, wenn es keine sinnvollen Alternativen gibt, verwende eher die Templatefunktionen der Standardbibliothek (Header <algorithm>, std::min, std::max...).
#include <iostream> #include <algorithm> int main() { int ivar1 = 1; int ivar2 = 2; int ivar3 = std::min(ivar1, ivar2); std::cout << "... ivar3 = " << ivar3 << std::endl; std::cin.get( ); }cu André
-
vielen Dank für die schnelle Antwort und auch für die guten Tipps!
Da wär ich glaub nicht so schnell drauf gekommen...