У меня проблемы с передачей указателя enum в параметры функции.
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
//Prototypes
void automate(int tddv_estime, int tab_para_automate[][3], enum* Etat);
void fct_test(int scenario[]);
/*-----------------------------------------------------------------------
main()
-------------------------------------------------------------------------*/
int main()
{
int scenario[15] = {21, 21, 20, 12, 12, 20, 22, 22, 22, 22, 22, 22, 22, 22, 500};
fct_test(scenario);
return 0;
}
/*-----------------------------------------------------------------------
Fonction fct_test
-------------------------------------------------------------------------*/
void fct_test(int scenario[])
{
//PARAMETRES
int increment = 1;
int tddv_estime;
int para_1_min = 5;
int para_1_max = 10;
int para_2_min = 1;
int para_2_max = 4;
int tab_para_automate[2][3] = {{0}};
int tab_para_application[2][2] = {{0}};
int i,j,k;
enum Etat {INIT, DECREMENT_PARA_1, INCREMENT_PARA_1, ETAT_INVARIANT_1, DECREMENT_PARA_2, ETAT_INVARIANT_2, INCREMENT_PARA_2, RADAR_SATURE};
/*printf("ETAT INITIAL\n");
printf("Para_1_courant = %d\n" , para_1_courant);
printf("Para_2_courant = %d\n\n\n" , para_2_courant);*/
for (k=0 ; k<16 ;k++)
{
tab_para_automate[k][0] = para_1_min;
tab_para_automate[k][1] = para_1_max;
}
for (j=1 ; j<16 ;j++)
{
tab_para_automate[j][0] = para_2_min;
tab_para_automate[j][1] = para_2_max;
}
do {
for (i=0 ; i<16 ; i++)
{
tddv_estime = scenario[i];
automate(tddv_estime, tab_para_automate, &Etat);
}
}while (scenario[i] != 500);
}
/*-----------------------------------------------------------------------
Fonction automate
-------------------------------------------------------------------------*/
void automate(int tddv_estime, int tab_para_automate[][3], enum* Etat)
{
int evenement;
int tddv_worst = 20;
int para_1_min = tab_para_automate[0][0];
int para_1_max = tab_para_automate[0][1];
int para_2_min = tab_para_automate[1][0];
int para_2_max = tab_para_automate[1][1];
int para_2_courant = para_2_max;
int para_1_courant = para_2_max;
if (tddv_estime < tddv_worst)
evenement = 1; //Etat initial
if (tddv_estime > tddv_worst)
evenement = 2; //Decrement para1
if (tddv_estime < tddv_worst && tab_para_automate[0][0] < tab_para_automate[0][1])
evenement = 3; //Increment para1
if (tddv_estime == tddv_worst)
evenement = 4; //Etat Invariant 1
if (tddv_estime > tddv_worst && tab_para_automate[0][0] <= tab_para_automate[0][0])
evenement = 5; //Decrement para_2
if (tddv_estime < tddv_worst && para_2_courant < tab_para_automate[1][1])
evenement = 6; //Increment para2
if (tddv_estime == tddv_worst)
evenement = 7; //Etat Invariant 2
if (tddv_estime > tddv_worst && tab_para_automate[0][0] <= para_1_min && para_2_courant <= para_2_min)
evenement = 8; //Etat radar sature
}
Я не могу передать свой указатель enum в параметрах, я не знаю почему. Я давно искал решение, может кто-нибудь помочь мне в этом, пожалуйста?
Возможно, проблема в прототипах, возможно, я не очень хорошо объявляю свою переменную enum, я не могу найти решение.