这些Visual Studio 2010错误和警告的原因是什么?

我不知道从Visual Studio 2010收到这些错误的原因。

这是我的程序从第343行到第408行的代码:

int create_den_from_img(char *img_file_name_part, int xlen, int ylen, int zlen ) { IplImage* imgs = 0; char str[80]; unsigned char *data,*imgdata; /* allocating memory */ data = (unsigned char *) malloc(xlen * ylen * zlen * sizeof(unsigned char) ); if(data==NULL) { printf("error in allocating memory \n"); exit(1); } /* Getting the filename & iterating through tiff images */ for(int k = 0; k imageData; for(int j =0; j < ylen; j++) { for(int i =0; i < xlen; i++) { data[ k*xlen*ylen + j*xlen + i ] = imgdata[ j*xlen+i ]; } } cvReleaseImage(&imgs ); } /* populating `data` variable is done. So, calling `write_den` */ if(write_den("test.den",data,xlen,ylen,zlen)==0) { printf("Error in creating den file\n"); exit(1); } printf("Den file created\n"); } 

这些是错误列表:

错误3错误C2143:语法错误:缺少';' 在'type'之前c:\ examples \ denfile.c 358 1 MTP_TEST
错误4错误C2143:语法错误:缺少';' 在'type'之前c:\ examples \ denfile.c 358 1 MTP_TEST
错误5错误C2143:语法错误:在'type'之前缺少')'c:\ examples \ denfile.c 358 1 MTP_TEST
错误6错误C2143:语法错误:缺少';' 在'type'之前c:\ examples \ denfile.c 358 1 MTP_TEST
错误7错误C2065:'k':未声明的标识符c:\ examples \ denfile.c 358 1 MTP_TEST
错误9错误C2065:'k':未声明的标识符c:\ examples \ denfile.c 358 1 MTP_TEST
错误10错误C2059:语法错误:')'c:\ examples \ denfile.c 358 1 MTP_TEST
错误11错误C2143:语法错误:缺少';' 在'{'c:\ examples \ denfile.c之前359 1 MTP_TEST
错误12错误C2065:'k':未声明的标识符c:\ examples \ denfile.c 361 1 MTP_TEST
错误13错误C2065:'k':未声明的标识符c:\ examples \ denfile.c 370 1 MTP_TEST
错误14错误C2065:'k':未声明的标识符c:\ examples \ denfile.c 372 1 MTP_TEST
错误15错误C2065:'k':未声明的标识符c:\ examples \ denfile.c 374 1 MTP_TEST
错误16错误C2143:语法错误:缺少';' 在'type'之前c:\ examples \ denfile.c 388 1 MTP_TEST
错误17错误C2143:语法错误:缺少';' 在'type'之前c:\ examples \ denfile.c 388 1 MTP_TEST
错误18错误C2143:语法错误:在'type'之前缺少')'c:\ examples \ denfile.c 388 1 MTP_TEST
错误19错误C2143:语法错误:缺少';' 在'type'之前c:\ examples \ denfile.c 388 1 MTP_TEST
错误20错误C2065:'j':未声明的标识符c:\ examples \ denfile.c 388 1 MTP_TEST
错误22错误C2065:'j':未声明的标识符c:\ examples \ denfile.c 388 1 MTP_TEST
错误23错误C2059:语法错误:')'c:\ examples \ denfile.c 388 1 MTP_TEST
错误24错误C2143:语法错误:缺少';' 在'{'c:\ examples \ denfile.c之前389 1 MTP_TEST
错误25错误C2143:语法错误:缺少';' 在'type'之前c:\ examples \ denfile.c 390 1 MTP_TEST
错误26错误C2143:语法错误:缺少';' 在'type'之前c:\ examples \ denfile.c 390 1 MTP_TEST
错误27错误C2143:语法错误:在'type'之前缺少')'c:\ examples \ denfile.c 390 1 MTP_TEST
错误28错误C2143:语法错误:缺少';' 在'type'之前c:\ examples \ denfile.c 390 1 MTP_TEST
错误29错误C2065:'i':未声明的标识符c:\ examples \ denfile.c 390 1 MTP_TEST
错误31错误C2065:'i':未声明的标识符c:\ examples \ denfile.c 390 1 MTP_TEST
错误32错误C2059:语法错误:')'c:\ examples \ denfile.c 390 1 MTP_TEST
错误33错误C2143:语法错误:缺少';' 在'{'c:\ examples \ denfile.c之前391 1 MTP_TEST
错误34错误C2065:'k':未声明的标识符c:\ examples \ denfile.c 392 1 MTP_TEST
错误35错误C2065:'j':未声明的标识符c:\ examples \ denfile.c 392 1 MTP_TEST
错误36错误C2065:'i':未声明的标识符c:\ examples \ denfile.c 392 1 MTP_TEST
错误37错误C2065:'j':未声明的标识符c:\ examples \ denfile.c 392 1 MTP_TEST
错误38错误C2065:'i':未声明的标识符c:\ examples \ denfile.c 392 1 MTP_TEST

我整天都在犯这些错误。 有时代码编译,而在其他时候它不编译。 它真的很烦人。

您正在编译.c文件,对于Microsoft Visual Studio,这意味着您需要编写C89(又名C90)代码,而不是C99代码或C ++。

这意味着您必须在每个块的开头声明变量。 这意味着你不能这样做:

 for (int k = 0; ... 

你必须在块的开头声明k并执行:

 for (k = 0; ... 

在343行之前的类/结构声明之后你有一个缺少的分号吗?

你可以做的一件事是尝试另一个编译器,看看你是否得到了一个不同的错误信息。 例如, Comeau在线 。

否则,您的代码或部分内容中是否有一些流氓#defines ? 既然这不会一直发生,有人可能会欺骗你吗? 尝试检查预处理的输出。