这是我的程序,因为它至少可以重现错误:
#include <iostream>
#include <Windows.h>
#include <fstream>
using namespace std;
#define iwidth 5;
#define iheight 3;
int main()
{
struct rgb_data_struct {
BYTE B;
BYTE G;
BYTE R;
};
rgb_data_struct **image;
image = new rgb_data_struct *[iwidth];
for (int i = 0; i < iwdith; i++)
{
}
return 0;
}
现在的问题是,我在主函数中使用iwdith,它用红色曲折线加下划线。将鼠标悬停在“错误:预期a']'”
上编译会产生以下错误:
Error 1 error C2143: syntax error : missing ')' before ';' c:\users\user0\documents\cpp\bitmap\bitmap\main.cpp 51 1 bitmap
Error 2 error C2143: syntax error : missing ']' before ')' c:\users\user0\documents\cpp\bitmap\bitmap\main.cpp 51 1 bitmap
Error 3 error C2143: syntax error : missing ';' before ')' c:\users\user0\documents\cpp\bitmap\bitmap\main.cpp 51 1 bitmap
Error 4 error C2143: syntax error : missing ';' before ']' c:\users\user0\documents\cpp\bitmap\bitmap\main.cpp 51 1 bitmap
Error 5 error C2065: 'iwdith' : undeclared identifier c:\users\user0\documents\cpp\bitmap\bitmap\main.cpp 52 1 bitmap
6 IntelliSense: expected a ']' c:\Users\user0\Documents\Cpp\bitmap\bitmap\main.cpp 51 32 bitmap
7 IntelliSense: expected an expression c:\Users\user0\Documents\Cpp\bitmap\bitmap\main.cpp 51 38 bitmap
8 IntelliSense: identifier "iwdith" is undefined c:\Users\user0\Documents\Cpp\bitmap\bitmap\main.cpp 52 22 bitmap
我正在使用Microsoft Visual Studio社区2013.我不明白为什么IDE在我声明它时没有看到iwidth!
答案 0 :(得分:7)
请勿使用#define
结束;
。这是使用预处理器复制的。
答案 1 :(得分:0)
原样,iwidth
将替换为5;
。摆脱宏定义中的分号。
此外,你不应该首先使用宏,这不是C.此外,你似乎在滥用指针。获得更好的C ++书籍或教程。