2014-02-06 2 views
0

Я имитирую сетевой протокол с помощью opnet. в модели процесса для блока процесса я написал эту функцию в FB. Но при компиляции он дает мне:OPNET: написал функцию в модели процесса opnet, но имеет ошибку

error: function 'inrpt_timer' must return a value; 

но он возвращает «intrpt». Я смущен! еще один вопрос: я не знаю, почему я должен ставить статические сначала определения функции. Я просто положил его, потому что у него также были предопределенные функции. может быть, проблема в этом! вот код:

static int intrpt_timer() 
{ 
int intrpt; 

FIN(intrpt_timer()); 

if((op_sim_time()-last_time)>=Ts) //check for interrupt 
    { 
    intrpt=1;//1 is true 
    last_time=op_sim_time();  //if timer passed update last time value 
    } 
else 
    intrpt=0;//zero is false 


return intrpt; 
FOUT; 

} 

ответ

0

ха-ха, нашел это сам;

когда хотите вернуть значение, (в opnet) "FRET (значение);" заменяет «возвращаемое значение»;

0

I don't know why I should put static at first of function definition.

Функция объявляется static означает, что она может быть вызвана только из текущей единицы компиляции.

0

Если у вас есть код FIN(...);, вы должны использовать FOUT; или FRET(...), чтобы закрыть функцию, в зависимости от того, должна ли функция возвращать что-либо.

FOUT; для void func(...) FRET(...); для int/double/Boolean... func(...)

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