2014-07-09 5 views
1

Я хочу передать число с плавающей точкой в ​​другую функцию.невозможно передать поплавок другой функции?

int main() 
{ 

float start=0; 
float step=0.1; 
int number=10; 

fun(start,step,number) 


} 

fun(float star, float ste, int numbe) 
{ 

//here I get "star = 0", "numbe = 10", but "ste = -1.084264e-19" 

} 

Что здесь не так?

Спасибо

+1

Вы должны определить или объявить функцию до ее вызова. – Barmar

+3

Что здесь не так? Что не так, так это то, что вы не говорите нам, что происходит не так. Это ваша программа? Что происходит, когда вы его компилируете? –

ответ

7

Для функции, безусловно, можно передать float, если вы предоставите прототип или переместите определение перед первым использованием функции.

Прототип (также называется прямой декларации) выглядит следующим образом:

void fun(float star, float ste, int number); 

В больших проектах, прототипы идут в файлы заголовков.

Примечание: не забудьте добавить void перед определением функции. В противном случае компилятор рассматривает вашу функцию как возвращающую int.

Если вы опустите прототип, компилятор по умолчанию использует старые правила K & R C, чтобы решить, как передать аргументы вашей функции. Результатом является необычное поведение, которое вы видите, и , надеюсь, предупреждение о компиляторе.

4

Вам необходимо правильное объявление функции до вашего вызова функции:

Добавить:

void fun(float star, float ste, int numbe); 

перед вашей main декларации, а также добавить void тип возвращаемого значения в вашем определении fun функции.

2

вам необходимо объявить функцию до main функции. Попробуйте следующее:

void fun(float star, float ste, int number); 

int main() 
{  
    float start=0; 
    float step=0.1; 
    int number=10; 

    fun(start,step,number); 
} 
+0

Спасибо! отлично работал – smaica

Смежные вопросы