Ich habe folgende Funktion:
%Vor%Bei Verwendung in einer anderen Funktion erhalte ich mehrere Fehlermeldungen:
%Vor% Wie auch immer, gibt es einen Weg, wo man zwei Werte von einer Funktion zurückgeben kann. Diese zwei Werte könnten durch irgendetwas: ein int
und ein char
, ein float
und ein int
...
Es tut mir leid, wenn das ein Kinderspiel für dich ist, aber ich bin ein Anfänger in C und der einzige Weg, den ich lernen kann, ist, Fragen zu stellen. Bitte machen Sie auch Ihre Erklärung so einfach wie möglich.
Update: Dies kann leicht durch Zeiger wie folgt erreicht werden.
Später würden Sie diese Funktion wie folgt aufrufen:
%Vor% Dies würde die Zeit in Sekunden der Variablen minutes
zuweisen und Sekunden der Variablen secs
Zwei Möglichkeiten:
1) Übergeben Sie Zeiger auf die Variablen, die geändert werden. Ihr Funktionsprototyp wird dann
%Vor% 2) Verwende ein struct
mit minutes
und seconds
als Mitglieder und gib das zurück.
Ich bevorzuge (1) wie im Fall von (2) bin ich immer besorgt darüber, unnötige Wertkopien zu nehmen, und ich werde nervös, wenn ich mich auf Rückgabewert-Optimierung als im Wesentlichen eine Compiler-Wahl und nicht von Standard C vorgeschrieben. Auch die Aufrufersyntax comMS(time_in_seconds, &minutes, &seconds)
sagt mir zu erwarten minutes
und seconds
zu ändern.
Einige Konvention ist auch mit Option (1) gewachsen: ein Null-Ergebnis zeigt normalerweise Erfolg, nicht Null für einen Fehler.
Sie können nicht return
2 Werte von einer Funktion gleichzeitig eingeben.
Sie können diese Werte in eine Struktur und return
wie folgt setzen:
Tags und Links c