我正在写一个小库,并与命名约定斗争。有一个称为gk_Stream的结构,定义如下:

typedef struct gk_Stream {
    gk_Stream_writeProc write;
    gk_Stream_readProc read;
    void* data;                 // Pointer to data needed by read and write procedures.
} gk_Stream;

现在,我想为这个结构提供两个内置的用途。
从/到aFILE*的读/写
从缓冲区读/写
我首先调用如下函数:
gk_Stream_initWithFile(gk_Stream* stream, FILE* fl);

gk_Stream_initWithBufferSize(gk_Stream* stream, size_t bufferSize);
gk_Stream_initWithStringAndBufferSize(gk_Stream* stream, char* string, size_t string_length, size_t buffer_size);
gk_Stream_deallocBuffer(gk_Stream* stream);

但另一种可能是这样称呼他们:
gk_Stream_file_init(/* */);
gk_Stream_buffered_initWithSize(/* */);
gk_Stream_buffered_initWithStringAndSize(/* */);
gk_Stream_buffered_dealloc(/* */);

你认为什么名字最有意义,或看起来/听起来最好?使用库时要使用的名称是什么?

最佳答案

我会这样做:

gk_Stream_InitWithFile(gk_Stream* stream, FILE* fl);
gk_Stream_Deinit(gk_Stream* stream);
gk_Stream_InitWithBufferSize(gk_Stream* stream, size_t buffer_size);
gk_Stream_InitWithStringAndBufferSize(gk_Stream* stream, char* string, size_t string_length, size_t buffer_size);

下划线分隔“名称空间”,函数名为CamelCase。变量的小写。

关于c - 多种用途的结构命名方法的约定,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11231247/

10-12 13:01
查看更多