Что такое “частный заголовок” в C?

Нет, но вы можете получить его от пользователя как элемент datetime из отформатированной строки.

Пример:

import datetime

userdatestring = '2013-05-10'
thedate = datetime.datetime.strptime(userdatestring, '%Y-%m-%d') 

Проверьте http://docs.python.org/2/library/datetime.html#strftime-strptime-behavior . Это удобный, хотя и не самый удобный способ получения даты.

11
задан Brian Tompsett - 汤莱恩 11 February 2016 в 16:45
поделиться

6 ответов

Пример, в котором я обнаружил файл .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. */

Затем, по соглашению, программа, использующая Класс Круг может включать в себя Круг. h как интерфейс для доступа к классу. Circle.r строго используется реализацией класса Circle , а не другими, поэтому он становится «частным заголовком».

r ] расширение файла - это в основном соглашение, которое используется, а не что-то, что является «официальным» или используется постоянно. Он используется для удобства и для отличия от обычных файлов заголовков с расширением файла h .

или использовали все время. Он используется для удобства и для отличия от обычных файлов заголовков с расширением файла h .

или использовали все время. Он используется для удобства и для отличия от обычных файлов заголовков с расширением файла h .

7
ответ дан 3 December 2019 в 04:14
поделиться

Расширение файла ".r" на самом деле мало что значит, вероятно, это просто личное соглашение, используемое этим автором. Некоторые люди назвали бы свой частный заголовок «new_p.h» или что-то в этом роде.

В основном частный заголовок - это просто заголовок, который предназначен для включения только этим конкретным файлом реализации, а не потребителем. Это не имеет ничего общего с языком или компилятором, это просто соглашение о кодировании.

11
ответ дан 3 December 2019 в 04:14
поделиться

Компиляторы C не придают никакого особого значения расширениям файлов, поэтому использование расширения .r - это всего лишь способ автора обозначить что-то по соглашению. Не будучи знаком с книгой, я не знаю, что это может быть, но будьте уверены, компилятор не придает имени файла никакого особого значения.

5
ответ дан 3 December 2019 в 04:14
поделиться

Как уже говорили другие, .r не имеет значения. Частный заголовок, вероятно, просто означает, что он не должен быть включен ничем, кроме файла, который его использует.

Этот фрагмент кода выглядит так, как будто он имитирует C ++ в C. Он создает const " Class «объект, содержащий размер, конструктор, деструктор и т. Д. Для« class » String . Эта структура содержит общую информацию о классе, которая будет использоваться этой объектно-ориентированной библиотекой для C.

0
ответ дан 3 December 2019 в 04:14
поделиться

Насколько я могу судить по различным проектам с открытым исходным кодом, которые я видел, частные заголовки - это заголовки, предназначенные для использования только определенным фрагментом кода (файлом или несколькими файлами). Они полезны, когда, например, некоторым файлам требуется доступ к символам / объявлениям друг друга, но эти символы / объявления не должны быть доступны из другого кода. Или их можно использовать для разделения прототипов из файлов .c.

Глобальные или обычные заголовки обычно хранятся в специальном каталоге 'include', в то время как частные заголовки остаются рядом с конкретным кодом, который они обслуживают.

Что касается ' точка r ', я никогда не слышал о нем раньше. Частные заголовки, которые я видел, называются «точка h», как и все другие.

2
ответ дан 3 December 2019 в 04:14
поделиться

Идиома, которую я обычно видел для частных заголовков, заключается в использовании следующего соглашения об именах:

  • module.h - открытый интерфейс; имена, структуры и функции, необходимые клиентскому коду. Если возможно, не определяйте структуры, просто объявляйте их имена и используйте непрозрачные указатели в интерфейсе. Если вы предоставляете SDK, это будет опубликованный заголовок.
  • modulep.h - частный заголовок; декларации и определения, используемые внутри модуля - клиентский код не должен (и не должен) включать их. Если вы предоставляете SDK, он не будет опубликован.
  • module.c - реализация; это будет использовать как module.h, так и modulep.h
0
ответ дан 3 December 2019 в 04:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: