D
Dann schaut das also folgendermaßen aus:
char *getCol(int _hCol)
{ /**
* @param _hCol: Integer
* @return: String, call-by-reference
*/
static char strCol[3]; // 2 Zeichen + NULL (static, damit Wert nach return erhalten bleibt)
sprintf (strCol,"%02x",_hCol); // konvertieren in String
return strCol;
}
char *strX=getCol(0x03);
printf(strX);
Aber irgendwie gefällt mir das nicht. Jetzt definiere ich in der Funktion eine Variable. Und mit der Variable, die ich in der Funktion definiert habe, arbeite ich dann im Hauptprogramm? Hm
Wie wärs mit dieser Variante:
char getCol(int _hCol,char *_strCol)
{ /**
* @param _hCol: Integer
* @param _strCol: String, call-by-reference
*/
sprintf(_strCol,"%02x",_hCol); // konvertieren in String
}
char strCol[3]; // 2 Zeichen + NULL
getCol(0xA3,strCol);
printf(strCol);
Nachdem die Funktion abgearbeitet wurde, kann sie C eingentlich vergessen. Es gibt dann keine Variable mehr in der Funktion, mit der im Hauptprogramm noch weitergearbeitet werden müsste.
Sehe ich das richtig?