问题描述
大家好,现在需要将C的一部分函数实现转换到c#中来,请问如下该怎么表示啊:#defineBB_MAX_SIZEtypedefstruct{intbuffer[RB_MAX_SIZE];int*buffer_end;int*data_start;int*data_end;intcount;intsize;};back_buffer..intBB_pop(backbuffer*rb){if(rb==NULL||rb->buffer==NULL)returnfalse;int8_tdata=*rb->data_start;rb->data_start++;if(rb->data_start==rb->buffer_end)rb->data_start=rb->buffer;rb->count--;returndata;}看到C#中可以用不安全代码,那么就是说BB_pop可以表示如下:publicunsafeintBB_pop(back_buffer*rb){if(rb==NULL||rb->buffer==NULL)returnfalse;int8_tdata=*rb->data_start;rb->data_start++;if(rb->data_start==rb->buffer_end)rb->data_start=rb->buffer;rb->count--;returndata;}是否正确?而struct的定义如果我用如下是有语法错误的,ref处,怎么解释:publicstructback_buffer{publicint[]buffer=newint[10];publicrefintbuffer_end;publicrefintdata_start;publicrefintdata_end;publicintcount;publicintsize;}
解决方案
解决方案二:
直接用Stack<int>不就行了,还翻译