c++初始化一个带有数组的结构类型

标签 c++ visual-c++ struct visual-c++-6

我使用 vc6,我做了一个这样的结构:

struct FileInfo
{
    char   filename[200] = {0};
    char   ext[20] = {0};
    int    f_size=0;
    int    offset=0;
    char*  pData=0;
};

但我得到了一个 error C2059: syntax error : '{' 错误, 而且我不知道如何正确初始化内部数组。

最佳答案

您在创建此结构的实例时初始化成员。在 C++ 中,这是在构造函数中完成的,而在 C 中,它是这样完成的:

struct FileInfo my_file_info = { { 0 }, { 0 }, 0, 0, 0 };

如果您不想添加构造函数(例如,如果结构在 C 和 C++ 程序之间共享),C 方式当然也可以在 C++ 中使用。

关于c++初始化一个带有数组的结构类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16760469/

相关文章:

c++ - 如何将 Eigen::eigenvector().col(0).real() 转换为 std vector ?

c++ - nvcc 致命 : Visual Studio configuration file 'vsvars32.bat' could not be found (VS 2017)

c++ - 同时学习 Visual C++ 2008 和 C++?有什么资源可以推荐吗?

c++ - xcode 4.4.1 c++11 头文件仍然归档在 tr1 下?

c++ - 将 ‘(((int)a) + -1)’ 从 ‘int’ 缩小到 { } 内的 ‘int16_t {aka short int}’

c++ - 如何在 Visual C++ 中读取内存地址?

c++ - 如何取消定义_MSC_VER?

C 数据结构错误

c++ - Objective-C 中此数据结构 (C++) 的替代方案

c - 如何在 C 中设置和更改常量变量/结构体/指针的值?