Ich versuche 2 Parameter zu senden (ein Schwimmer und eine Reihe von Hin- und Herbewegungen) auf eine Funktion in C.Wie ein Schwimmer-Anordnung und einen Schwimmer als Parameter an eine Funktion in C passieren
Ich bin diesen Fehler:
test.c:10:1: error: conflicting types for ‘result’
result(float *array, float number){
^
test.c:10:1: note: an argument type that has a default promotion can’t match an empty parameter name list declaration
test.c:7:5: note: previous implicit declaration of ‘result’ was here
result(array, number);
Mein Code ist:
#include <stdio.h>
#include <math.h>
main()
{
float array[3] = {1.5, 2.6, 3.7};
float number = 2.3;
result(array, number);
}
result(float *array, float number)
{
printf("number: %f\n", number);
printf("array 1: %f\n", array[1]);
}
ich bin neu in C und wissen, dass in anderen Sprachen thi s würde funktionieren, also jede Hilfe auf, was man hier tut, würde sehr geschätzt werden!
Setzen Sie die 'result' Definition oben' main'. Oder deklariere dort seinen Prototyp. In C müssen Deklarationen vor ihrer ersten Verwendung kommen. Andernfalls nimmt der Compiler einige Standardwerte an, die oft nicht das sind, was Sie wollen (z. B. Parameter sind Ganzzahlen). – kaylum
Beachten Sie, dass Vor-Standard C und C90 schlampig waren, dass Funktionen vor der Verwendung ohne eine Deklaration oder Definition aufgerufen werden können, während C99 und C11 dies nicht zulassen. Aufgrund der Standard-Heraufstufungsregeln, die ein 'float' in ein' double' in einer Funktionsparameterliste umwandeln, hätte es jedoch Probleme in einer einzelnen Datei selbst in C90 gegeben. (Vor-Standard C hätte die Prototypnotation in der Funktionsdefinition nicht erlaubt, also hätte es dort kein Problem gegeben - aber der Code wäre auch anders gewesen.) –