对于分配内存的函数,您遵循哪些命名约定?

the*_*ine 4 c string naming-conventions

所以这里有两个函数几乎做同样的事情。

如果您必须将两者都包含在您的项目中,您会如何命名每一个?

void strToLower1(char* str)
{
    int len = strlen(str);

    int i;
    for (i=0; i<len; i++)
        str[i] = tolower(str[i]);
}

char* strToLower2(const char* inputStr)
{
    char* str = strdup(inputStr);
    strToLower1(str);
    return str;   // must be freed
}
Run Code Online (Sandbox Code Playgroud)

编辑:我修改了上面的示例以确保代码正确性(sheesh)

Ber*_*t F 5

我真的很喜欢Taligent 编码标准,尤其是命名约定。关于使用特殊名称进行复制、创建和采用例程的约定可能适用于此:

\n

https://root.cern.ch/TaligentDocs/TaligentOnline/DocumentRoot/1.0/Docs/books/WM/WM_67.html#0

\n
\n

使用特殊名称进行复制、创建和采用例程\n

\n

分配、管理或负责存储的例程具有特殊名称并遵守以下准则:

\n

例程创建\n调用者必须\n删除的新对象,\n以 Create... 开头

\n

复制现有对象的例程,\n其中调用者必须删除副本,\n以 Copy... 开头。复制对象的成员函数\n应该是\nCopy()。

\n

放弃对象并将删除责任传递给调用者的例程\n以 Orphan... 开头

\n

接受调用者已分配的对象并负责最终删除的例程以 Adopt... 开头(这种编程风格很容易出错;如果可能,请避免使用。)

\n

采用不能遵循先前规则的例程(例如构造函数)\n参数的名称以采用...开头。

\n

[目录] [上一页] [下一页] 单击\n图标可将有关此材料的问题或更正\n发送给 \nTaligent 人员。版权所有\xc2\xa91995\nTaligent,Inc. 版权所有。

\n
\n

接下来,可以调用第一个方法createLowerCaseStr()or copyAsLowercaseStr()。前导关键字createandcopy指示必须由调用者管理的新内存。

\n

就我个人而言,我会将第二个函数称为transformIntoLowercase()mutateIntoLowercase(),但我倾向于使用冗长的名称。虽然 Taligent 没有指定,但我看到了主要关键字transformmutate作为就地完成的转换的提示。

\n