Vor diesem Prototyp erhalten, die eine Endian Konvertierung tut:Wie die Adresse des Rückgabewert einer Funktion in C++
time_t Flip(time_t);
Ich möchte den Rückgabewert in einer Funktion verwenden, die eine BYTE nimmt * als ein Argument. Etwas wie folgt aus:
SetBytesAt(0, (BYTE*)&(Flip(t)));
Aber dies nicht kompiliert. Gibt mir diesen Fehler "& erfordert l-Wert". Wenn die Funktion() um die Flip-Funktion herum entfernt wird, wird derselbe Fehler generiert.
Nun, ich weiß, dass ich dies nur tun können:
time_t temp_t = Flip(t);
SetBytesAt(0, (BYTE*)&temp_t);
Aber es scheint mir, dass ich in der Lage sein sollte, die gleiche Sache, ohne die temporären temp_t Variable zu erreichen.
Auf vielen (meisten?) Architekturen befindet sich der von einer Funktion zurückgegebene Wert in einem Register, so dass er/bis er einer Variablen zugewiesen ist, keine Adresse hat. –
Was macht 'SetBytesAt' überhaupt? Wäre irgendwie nützlich zu wissen, um dies richtig zu beantworten ... – leftaroundabout