2016-10-26 1 views
0
typedef enum 
{ 
    TCP = 1, 
    UDP 
}protocol; 

typedef enum 
{ 
    DLL_Operation = 1, 
    MT_Operation, 
    Fork_Operation, 
    IPC_Operation 
}msgc; 

struct f 
{ 
    int seqNo; 
    protocol p; 
    msgc m; 
    protocol q; 
    int PayLoadSize; 
    void (*payload_ptr)(); 
}; 

Ceci est ma structure que je suis en utilisant ...identifiant attendu avant jeton dans la fonction pointeur

Maintenant, je suis de la fonction Attribution d'une adresse dans ce pointeur de fonction définissant dans strucutre ...

if(f2.m == 1) 
{                   
    f2.(*payload_ptr) = DLL; 
    f2.payload_ptr(); 
} 
else if(f2.m == 2) 
{ 
    f2.(*payload_ptr) = MT; 
    f2.payload_ptr();  
} 
else if(f2.m == 3) 
{ 
    f2.(*payload_ptr) = Fork; 
    f2.payload_ptr(); 
} 
else 
{ 
    f2.(*payload_ptr) = IPC;   
    f2.payload_ptr(); 
} 

dans la compilation de ce programme ... il affiche l'erreur comme ..

erreur: identifiant prévu avant « (» jeton

f2. (* Payload_ptr) = DLL;

& même pour toutes les conditions .... quelle est la solution ..

cette DLL, MT tous sont une fonction que je définis pour certaines opérations ...

Répondre

1

Vous assignez les valeurs pour faire fonctionner les pointeurs à tort.

Il devrait être comme ci-dessous pour tous les cas

if(f2.m == 1) 
{                   
    f2.payload_ptr = DLL; 
    f2.payload_ptr(); 
} 

S'il vous plaît assurer que des fonctions telles que DLL sont de type void DLL();