Intereting Posts
Как я могу привязать массив пикселей целых цветов к текстуре с помощью Android NDK? Безопасно ли вызывать CFRunLoopStop из другого streamа? В то время как «развивает» процесс, почему kernel ​​Linux копирует содержимое таблицы страниц ядра для каждого вновь созданного процесса? Где лучшее место для изучения C? Как мы можем проверить, является ли входная строка допустимым двойным? Заголовок системы и обычный заголовок gcc Перемещение в другую систему сборки Linux, получение ошибки: undefined symbol: stat Восстановить stdin от eof в C Эффективный выбор случайной строки из текстового файла с равномерной вероятностью в C? Если волатильность бесполезна для streamовой передачи, почему атомарные операции требуют указателей на изменчивые данные? GUI-библиотека для микроcontrollerа Спецификатор формата в scanf для типа данных bool в C Как лучше форматировать инструкцию printf, так что вещи всегда выстраиваются в линию как насчет .bss-раздела не ноль инициализирован Получение min, max и ave из пяти введенных чисел

Почему все файлы C, написанные моим преподавателем, начинаются с #?

Почему все файлы C, написанные моим преподавателем, начинаются с #?

Я просматриваю некоторые примечания к курсу, и каждый исходный файл программы C начинается с одного символа # в первой строке программы.

Затем появляются пробелы и следуют за другим материалом, за которым следует main функция.

В чем причина # ?

(Теперь это не в срок, и я не могу спросить этого человека.)

Вот пример (есть дополнительная строка в конце закрытия } )

 # #include  int main() { printf("Hello, World!"); return 0; } 

Вау, это требование возвращается к 1970-м годам.

В самые ранние дни предварительно стандартизованного C, если вы хотите вызвать препроцессор , вам нужно было написать # как первое в первой строке исходного файла. Запись только # в верхней части файла дает гибкость при размещении других директив препроцессора.

От оригинального проекта C великим Деннисом Ричи :

12. Контрольные линии компилятора

[…] Чтобы вызвать [препроцессор] для вызова, необходимо, чтобы первая строка программы начиналась с #. Поскольку нулевые строки игнорируются препроцессором, эта строка не содержит никакой другой информации.

Этот документ позволяет отлично читать (и позволил мне перейти на этот вопрос, как безумный кот).

Я подозреваю, что лектор просто сентиментален – это не обязательно, конечно, с ANSI C.