C / C ++ stdlib命名约定的名称?

我想知道C / C ++标准库中使用的命名约定是否有一个名称,或者至少是一个可以查找规则的备忘单。 例如

push_back -- underscore used setstate -- but not used here! string::npos -- when to use abbreviations? fprintf ... 

C / C ++标准库中使用的命名约定是否具有特定名称?

C / C ++使用着名的make-stuff-up-as-go-going-a命名约定。 一般来说,你可以说的关于C / C ++标准库命名约定的唯一一致的事情是它不使用camel情况(C ++ STL模板类型名除外),它使用小写的类和函数名,并且(有时候) )使用下划线来分隔单词。 但是下划线的使用更像是一个C ++的东西; C特别倾向于缩写词,例如strlenmemcpy 。 这可能是因为在UNIX的早期阶段倾向于使用非常简洁的名称。

C标准库具有明确定义的规则,您必须遵循这些规则以避免名称混淆。 我对C ++一无所知。

如果您认为这是一团糟,您应该查看PHP库…

我认为不同的人在不同的时间发明了几个小组并使用了一些不同的约定:C库,流,字符串,STL(容器+算法+迭代器)。 我有一种感觉,后者可能被视为惯例,它为boost和C ++ 0x命名之类的东西设置了示例。

可悲的事实是 – 没有真正的惯例。

查看stdio函数的参数顺序是一个痛苦的提醒。

我没有答案,但至少,我不认为C和C ++使用相同的命名约定。

我认为这两组命名约定都没有名称。

C和C ++标准中的命名约定是不同的,尽管有微弱的相关性。

特别是,在C库中,与C ++库不同,没有函数或宏名称包含下划线(AFAICR)。

大多数C库命名约定都是由先例控制的; 它标准化现有的实践(截至约1984年),发明非常少(通过区域设置处理是主要的)。

C ++库也是基于先例 – 但是一组不同的先例,我认为可以说STL在被标准采用之前没有广泛使用,因为C库中的函数是。