C/ c++下划线t/type (_t/_type)和类名

C/C++ underscore t/type (_t/_type) and class names?

本文关键字:type c++ 下划线      更新时间:2023-10-16

我理解下划线t (_t)用于识别类型,正如下划线类型(_type)一样,通常在typedef语句中。

  1. 是否有稍微不同的用法(例如,下划线类型用于模板,但下划线t用于非模板)?

  2. 为什么不在声明中使用它们?例句:

    class person_t { };
    enum error_t { };
    

这与之前关于下划线t的问题不同,因为它还询问了下划线类型之间的区别。而且,很明显,这两个后缀都只是惯例,但为什么它们都在c++标准中使用却并不明显。例如,std:: size_t vs std:: istream:: pos_type。

我不知道你的第一个问题有什么答案,我相信这只是c++标准中存在的两种不同的约定。

对于你的第二个问题,我知道在c++标准中使用_t_type的地方,它们被用作一些底层类型的类型定义。例如,uint32_t是当前实现的32位无符号整数类型的typedef。它们从不用于实际类型。

我相信POSIX使用_t作为实际类型,但这是一个不同的约定,与c++标准中的使用是分开的。