0
我想要發送2個參數(浮子和浮子的數組)的函數在C.如何通過浮子陣列和浮子作爲參數的函數用C
我收到此錯誤:
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);
我的代碼是:
#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]);
}
我是新的C和知道,在其他語言THI s會工作,所以在這裏做什麼的任何幫助將不勝感激!
把'result'定義的上方'main'。或者在那裏宣佈其原型。在C中,聲明必須在第一次使用之前出現。否則,編譯器會假定一些默認值通常不是你想要的(例如,假設參數是整數)。 – kaylum
請注意,標準C和C90在使用前無需聲明或定義就可以調用函數,但C99和C11不允許這樣做。但是,由於在函數參數列表中將'float'轉換爲'double'的默認升級規則會在單個文件中造成麻煩,即使在C90中也是如此。 (預標準C在函數定義中不允許使用原型符號,所以在那裏不存在問題 - 但代碼也會有所不同。) –