При определении макросов, на которые полагаются заголовки, например _FILE_OFFSET_BITS, FUSE_USE_VERSION, _GNU_SOURCE, где это лучшее место для размещения?
Некоторые возможности, которые я рассмотрел, включают
- В верхней части любых исходных файлов, которые полагаются на определения, представленные заголовками, включенными в этот файл
- Непосредственно перед включением для соответствующего заголовка (ов)
- Определить на уровне
CPPFLAGSчерез компилятор? (например,-D_FILE_OFFSET_BITS=64) для:- Целый репо-источник
- Весь проект
- Только те источники, которые этого требуют.
- В заголовках проектов, которые также должны включать соответствующие заголовки, к которым применяются макросы.
- Некоторое другое место, о котором я не думал, но бесконечно превосходен
Примечание. Основанием для моего решения является обоснование применимостью к make, autotools и другим системам сборки.