我有这样的阵列结构的C:阵列 - Visual C
struct Stream_Bufer {
int size_;
int capacity_max;
int p_read;
int p_write;
char data_[320000];
} stream_buffer_[30];
但是,如果我做int capacity_max = 320000;
我会得到错误:“数据成员的初始值是不允许的。”初始化的一种方式,我发现,是:
for(int i = 0; i<30;i++){
stream_buffer_[i].capacity_max = 320000;
}
任何“干净”的方式来做到这一点?
是否有任何理由在你的代码'capaci ty_max'有一个不会不是320000的值?乍一看,因为'data_'成员的大小不变,所以您可能应该使用常量。 – SirDarius
当我写入缓冲区时,有一个允许我控制缓冲区剩余大小的值。 @SirDarius – carduh
是你的for()循环在全局范围吗? (在C中,函数外部不允许使用代码,即使不在初始化程序中) – joop