Я хочу выполнить a printf()
отображаться, когда в настоящее время выполняющий код был в последний раз скомпилирован. C/C++ обеспечивает макрос, который дает Вам, который решает к метке времени во время компиляции?
Если вы используете препроцессор gcc, то вы найдете то, что ищете, в макросах __ TIME __
и __ DATE __
Quotes из документации препроцессора GNU C :
__ DATE __
Этот макрос заменяется строковой константой, описывающей дату, когда препроцессор запускается. Строковая константа содержит одиннадцать символов и выглядит как «12 февраля 1996 года». Если день месяца меньше 10, он заполняется пробелом слева.
...
__ TIME __
Этот макрос расширяется до строковой константы, описывающей время, в которое выполняется препроцессор. Строковая константа состоит из восьми символов и имеет вид «23:59:01».
16.8 Предопределенные имена макросов [cpp.predefined]
1 Следующие имена макросов должны быть определены реализацией:
__ LINE __
Номер строки текущей исходной строки (a десятичная константа).
__ FILE __
Предполагаемое имя исходного файла (литерал символьной строки).
__ DATE __
Дата перевода исходного файла (символьный строковый литерал в форме «Ммм дд гггг», где названия месяцев совпадают с названиями месяцев, сгенерированными функцией asctime, а первый символ of dd - это пробел, если значение меньше 10). Если дата перевода недоступна, предоставляется действительная дата, определяемая реализацией.
__ TIME __
Время перевода исходного файла (символьный строковый литерал в форме «чч: мм: сс», как во времени, созданном функцией asctime). Если время перевода недоступно, предоставляется действительное время, определяемое реализацией.
__ STDC __
Предопределено ли__ STDC __
, и если да, то каково его значение, определяется реализацией.
__ cplusplus
Имя__ cplusplus
определяется значением 199711L при компиляции единицы перевода C ++ .
Вы хотите __ TIME __
и, возможно, __ DATE __
.
Используйте сценарий или создайте приложение, чтобы сгенерировать исходный файл C ++, содержащий дату и время сборки. Добавьте этот файл в настройку сборки. Другие части программы могут ссылаться на данные в этом файле.
Этот метод также полезен для встраивания номера версии в программу. В процессе сборки можно контролировать номер версии.
Похоже на компиляторы ожидается, что предоставит макрос __ TIMESTAMP __
, который должен работать для ваших целей.