2015-08-07 1 views
-1

I ont la ligne de code ci-dessous:paramètre d'erreur gcc Disable '<anonymous>' comprend pointeur sur un tableau de inconnue lié

typedef P2FUNC(Std_ReturnType, APP1, GetData) (P2VAR(max_data, AUTOMATIC, APP2) 

lequel P2FUNC et P2VAR est un compilateur macro:

#define P2FUNC(rettype, ptrclass, fctname) rettype (*fctname) 
#define P2VAR(ptrtype, memclass, ptrclass) ptrtype * 

et max_data est définie comme:

typedef uint8 max_data[]; 

le compilateur me donne l'erreur suivante:

error: parameter '<anonymous>' includes pointer to array of unknown bound  'max_data {aka unsigned char []}' 

Ce fichier .h est inclus dans un fichier .cpp dans une déclaration externe "C" {....

Ma question est maintenant, il est possible de désactiver ce message d'erreur pour ce cas particulier? Selon certaines normes spécifiques, cette situation a sa propre raison en ce qui concerne la taille indéterminée de tableau.

Je compile avec le compilateur g ++. Sera reconnaissant de l'aide.

+2

Vous ne pouvez pas désactiver les * erreurs *, car ce sont des erreurs, ce que vous faites n'est tout simplement pas autorisé. Et vous ne pouvez simplement pas avoir de pointeurs vers des tableaux de taille inconnue. Soit vous devez repenser votre conception, faites 'max_data' un tableau d'une taille spécifique. –

Répondre

1

Essayez de définir max_data comme:

typedef uint8* max_data; 

de spécifier une taille:

typedef uint8 max_data[10]; 
2

Lorsque vous passez des tableaux à des fonctions, des tableaux convertis en implicitily obtient des pointeurs, et vous ne pouvez pas créer des pointeurs vers tableau de taille inconnue. Pour résoudre votre problème, donnez une taille à votre tableau typedef uint8 max_data[10]; ou utilisez des pointeurs et une allocation de mémoire dynamique.

+0

Voici une mise à jour, puisque vous n'avez pas été sélectionné. – this

+0

@this: D Merci mec ..... :) – Nishant