Почему файлы C заканчиваются на /* [] */

Я просматриваю проприетарный исходный код: пример программ с использованием библиотеки.

Код написан на языках C и С++, используя команду make для сборки.

Каждый файл заканчивается прокомментированным []: /*[]*/ для исходных файлов и #[]# для make файлов. Что может быть причиной этого?

Код компилируется для ARM с помощью GCC, используя расширения.

Ответ 1

Скорее всего, это место для своего рода автоматического расширения.

Обычно что-то вроде macrodef (или одного из фильтров управления исходным кодом) будет расширять такие элементы, чтобы содержать какой-то соответствующий текст. Как правило, расширяются только защищенные от комментариев скобки, комментарии останутся на месте, защищая исходный код от фактических расширенных элементов во время компиляции.

Однако то, что вы сейчас просматриваете, вероятно, является внешним, содержащим скобки, с удалением всех внутренних расширений. Это могло быть сделано во время перехода кода из одной системы управления исходным кодом в другую. Хотя такая идея весьма спекулятивна, кажется, что они не пытались перенести элементы расширения, а не просто удалять их.

Ответ 2

В одном проекте, который я использовал, каждый исходный файл C содержал комментарий в самом конце:

/* End of file */

Причиной этого было предупреждение gcc

Warning : No new line at end of file 

Итак, у нас был этот комментарий (с новой строкой после него), чтобы люди не писали после комментария:)