我與這個主cpp文件:的extern問題結構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];
然後我有以下內容的form.h:
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;
...
這不會給編譯大量的錯誤,但第一個是:'DataLine *' : unknown size
。我應該改變某些東西給typedef嗎?我不確定爲什麼它不喜歡這個。
我不確定'extern const int MAX_LEN = 4033;'很有意義。如果它是一個'extern'變量,你不應該給它一個價值! – 2010-08-31 20:25:13
啊,是的。我修正了這一點。仍然有相同的錯誤。 – 2010-08-31 20:28:14
主要問題已由其他人給出的答案解決。但是,我想我應該指出你的頭文件在其他方面有點奇怪。在一個頭文件中執行賦值(例如'AllData [index] .StartCode = sc;')沒有任何意義,除非碰巧直接將'#include'包含在函數的主體中。 – 2010-08-31 20:33:05