В этом разделе рассматриваются три дополнительные директивы. Они описываются для полноты и не являются часто используемыми.
"Пустая директива" состоит из символа '#', за которым следует символ новой строки, причем между ними могут быть только пробелы (включая комментарии). Пустая директива рассматривается как директива препроцессора и не влияет на общий вывод. Основным значением этой директивы является то, при обработке строки, содержащей символ '#', на вывод ничего не передается, в отличие от выводимой строки, содержащей '#'.
Стандарт ANSI указывает, что директива '#pragma' имеет произвольное значение, устанавливаемое при разработке. В препроцессоре GNU C она не используется, за исключением значения '#pragma once'. Однако, она остается при выводе препроцессора и может быть использована в процессе компиляции.
Директива '#ident' используется для совместимости с некоторыми системами. За ней следует строка с текстом. На некоторых системах этот текст копируется в отдельное место объектного файла. Но в большинстве систем он просто игнорируется и применение этой директивы не дает никакого эффекта. В действительности, эта директива является единственной директивой, используемой в подключаемых файлах и функционирует на тех системах, которые ее поддерживают.