未声明的标识符虽然已声明
Undeclared Identifier although it is declared
对于我尝试创建文件然后写入其中的程序,我编写了以下内容:
int main(){
...
....
(some code)
....
char DataBuffer[] = "This is the test file";
...
...
}
我收到错误 "DataBuffer: undeclared identifier"。
我正在使用 Microsoft Visual C++ Express。在 whosebug.com 中的一个老问题中,我读到 Visual C++ 使用旧的 C89 标准并且它不支持 C99 标准。
出于这个原因,我必须在开始时声明变量(我为 CreateFile() 和 WriteFile 的其余参数所做的)。我的意思是,当您考虑以下内容时:
DWORD dwCreationDisposition = CREATE_NEW;
然后我拆开改成:
DWORD dwCreationDisposition;
...
dwCreationDisposition = CREATE_NEW
但我不知道应该如何使用数组。所以,例如当我写:
char DataBuffer[];
....
DataBuffer[] = = "This is the test file";
然后我也得到同样的错误信息。
我能做些什么 ?是否有可能更改编译器选项?或者有机会重写它以便集成编译器接受它作为另一个拆分 variables/parameters ?
此致,
如果您希望您的字符串可重写,您应该这样做:
char DataBuffer[MAX_SIZE];
....
strcpy(DataBuffer,"This is the test file");
同时考虑使用 strncpy
来避免缓冲区溢出错误。
如果您的字符串是常量,则:
const char DataBuffer[] = "This is the test file";
对于我尝试创建文件然后写入其中的程序,我编写了以下内容:
int main(){
...
....
(some code)
....
char DataBuffer[] = "This is the test file";
...
...
}
我收到错误 "DataBuffer: undeclared identifier"。 我正在使用 Microsoft Visual C++ Express。在 whosebug.com 中的一个老问题中,我读到 Visual C++ 使用旧的 C89 标准并且它不支持 C99 标准。 出于这个原因,我必须在开始时声明变量(我为 CreateFile() 和 WriteFile 的其余参数所做的)。我的意思是,当您考虑以下内容时:
DWORD dwCreationDisposition = CREATE_NEW;
然后我拆开改成:
DWORD dwCreationDisposition;
...
dwCreationDisposition = CREATE_NEW
但我不知道应该如何使用数组。所以,例如当我写:
char DataBuffer[];
....
DataBuffer[] = = "This is the test file";
然后我也得到同样的错误信息。 我能做些什么 ?是否有可能更改编译器选项?或者有机会重写它以便集成编译器接受它作为另一个拆分 variables/parameters ?
此致,
如果您希望您的字符串可重写,您应该这样做:
char DataBuffer[MAX_SIZE];
....
strcpy(DataBuffer,"This is the test file");
同时考虑使用 strncpy
来避免缓冲区溢出错误。
如果您的字符串是常量,则:
const char DataBuffer[] = "This is the test file";