Экземпляр, в котором я обнаружил файл .r
, находится в Объектно-ориентированном программировании с ANSI-C , где файл .r
используется как «представление» класса - (если я правильно понимаю) способ скрыть информацию, сохраняя внутреннее представление и контролировать доступ к функциям класса в отдельном заголовочном файле.
Только реализация класса может ссылаться на файл .r
, и в этом отношении его можно рассматривать как «закрытый заголовок» для класса. Интерфейс, внешний к классу, использовался обычный заголовочный файл .h
.
В качестве иллюстрации класс может состоять из трех файлов:
Circle.h /* Header file with external interfaces, such as methods. */
Circle.r /* Representation file for internal use within the class, such as
structs that define the internal states. */
Circle.c /* Implementation of the Circle class. */
Тогда, по соглашению, программа, использующая класс Circle
, может включать файл Circle.h
в качестве интерфейса для доступа к классу. Circle.r
строго используется реализацией класса Circle
, а не другими, что делает его "частным заголовком".
Расширение файла r
в основном является соглашением, которое используется, и не является чем-то «официальным» или используемым постоянно. Он используется для удобства и для отличия от обычных заголовочных файлов с расширением h
.