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

标签 c identifier c89

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

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


}

我收到错误“DataBuffer:未声明的标识符”。 我正在使用 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";

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

最好的问候,

最佳答案

如果你希望你的字符串是可重写的,你应该这样做:

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

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

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

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

关于c - 未声明的标识符虽然已声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29047909/

相关文章:

c - Gasport 或 Shell Sort 无法正确滑动

c - %p 将 64 位二进制格式转换为 8 个十六进制数字

c++ - 未声明的标识符编译错误

c - 从文本文件读取网格并将其存储在二维数组中?

objective-c - 从 Objective C 类中的 C 中的内存中读取数据

c - -funsafe-math-optimizations 中包含哪些优化?

c - X 工具包 : heap is growing when recreating widgets

java - 需要标识符吗?

python - 对象名称前的单下划线和双下划线是什么意思?

c - 在 Windows 平台上使用 ANSI-C 可以获得精确到毫秒的系统时间吗?