未声明的标识符虽然已声明

时间:2015-03-14 10:34:13

标签: c identifier c89

对于我尝试创建文件然后写入文件的程序,我写了以下内容:

 int main(){
        ...
        ....
       (some code)
        ....
          char DataBuffer[] = "This is the test file";
        ...
        ...


}

我收到错误“DataBuffer:undeclared identifier”。 我使用的是Microsoft Visual C ++ Express。在stackoverflow.com中的一个老问题中,我已经读过Visual C ++使用旧的C89标准并且它不支持C99标准。 出于这个原因,我必须在开头声明变量(我为CreateFile()和WriteFile的其余参数做了这些。我的意思是,当你考虑以下事项时:

   DWORD dwCreationDisposition = CREATE_NEW;

然后我把它拆分并改为:

   DWORD dwCreationDisposition;
   ...
   dwCreationDisposition = CREATE_NEW

但是我不知道我应该怎么做一个数组。所以,例如我写的时候:

 char DataBuffer[];
 ....
 DataBuffer[] = = "This is the test file";

然后我也得到相同的错误消息。 我能做什么 ?是否有可能更改编译器选项?或者有机会重写它,以便集成编译器接受它作为其他分裂变量/参数?

最好的问候,

1 个答案:

答案 0 :(得分:2)

如果你想让你的字符串可以重写,你应该这样:

 char DataBuffer[MAX_SIZE];
 ....
 strcpy(DataBuffer,"This is the test file");

还要考虑使用strncpy来避免缓冲区溢出错误。

如果你的字符串是常数,那么:

const char DataBuffer[] = "This is the test file";