Je le fichier .cpp principal avec ceci:problèmes externat avec tableau de structures C++
#include "stdafx.h"
#include "Form1.h"
#include <iostream>
...
#include <stdio.h>
const int MAX_LEN = 1000;
struct DataLine {
char StartCode;
int ByteCount;
int Address;
int RecType;
int DBytes[16];
int Checksum;
};
DataLine AllData[MAX_LEN];
Puis j'ai un form.h ce qui suit:
extern const int MAX_LEN;
extern struct DataLine AllData[MAX_LEN];
//later on in header file
AllData[index].Startcode = sc;
AllData[index].ByteCount = i_Byte_Count;
...
Ce ne compilera pas donner une foule d'erreurs, mais le premier est: 'DataLine *' : unknown size
. Devrais-je changer certaines choses à typedef? Je ne suis pas vraiment sûr pourquoi il n'aime pas ça.
Je ne suis pas sûr que 'extern const int MAX_LEN = 4033;' a beaucoup de sens. Si c'est une variable 'extern', vous ne devriez pas lui donner de valeur! –
Ahh oui. J'ai réparé ça. Toujours avoir les mêmes erreurs. –
Le problème principal a été résolu par les réponses données par d'autres. Cependant, j'ai pensé que je devrais souligner que votre fichier d'en-tête est un peu bizarre à d'autres égards. Cela n'a aucun sens d'effectuer des affectations (par exemple 'AllData [index] .StartCode = sc;') dans un en-tête, à moins que vous n'ayez à le faire # inclure directement dans le corps d'une fonction. –