我在Microsoft Visual C++ 2010 Express中做的C項目中出現了一個非常奇怪的語法錯誤。我有以下代碼:C語法錯誤:缺少';'在'type'之前
void LoadValues(char *s, Matrix *m){
m->columns = numColumns(s);
m->rows = numRows(s);
m->data = (double*)malloc(sizeof(double) * (m->rows * m->columns));
int counter = 0;
double temp;
bool decimal;
int numDec;
while(*s != '\0'){
.
.
.
}
}
當我嘗試構建解決方案時,出現「缺失」;「在爲我的所有變量(temp,counter等)輸入「error」之前,試圖在while循環中使用它們中的任何一個都會導致「未聲明的標識符」錯誤。我確保bool被定義爲
#ifndef bool
#define bool char
#define false ((bool)0)
#define true ((bool)1)
#endif
位於.c文件的頂部。我已經搜索了堆棧溢出的答案,有人說,舊的C編譯器不讓你聲明和初始化變量在同一個塊,但我不認爲這是問題,因爲當我註釋行
m->columns = numColumns(s);
m->rows = numRows(s);
m->data = (double*)malloc(sizeof(double) * (m->rows * m->columns));
所有的語法錯誤消失了,我不知道爲什麼。任何幫助表示讚賞。
---編輯---- 請求矩陣代碼
typedef struct {
int rows;
int columns;
double *data;
}Matrix;
您是否嘗試過移動你試圖註釋掉下面的變量定義,例如三線'int numDec;'之後? – dunc123
你的class Matrix {...};定義後面跟着一個分號,對吧? – dasblinkenlight
您需要展示更多代碼。 Matrix是什麼? – Jiminion