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)
我真的很喜欢Taligent 编码标准,尤其是命名约定。关于使用特殊名称进行复制、创建和采用例程的约定可能适用于此:
\nhttps://root.cern.ch/TaligentDocs/TaligentOnline/DocumentRoot/1.0/Docs/books/WM/WM_67.html#0
\n\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
接下来,可以调用第一个方法createLowerCaseStr()or copyAsLowercaseStr()。前导关键字createandcopy指示必须由调用者管理的新内存。
就我个人而言,我会将第二个函数称为transformIntoLowercase()或mutateIntoLowercase(),但我倾向于使用冗长的名称。虽然 Taligent 没有指定,但我看到了主要关键字transform并mutate作为就地完成的转换的提示。