Когда Затмение создает новый файл (файл .c или .час) в проекте C, редактор всегда автоматически создает #define в верхней части файла следующим образом: Если файл называется myCFile.c, в начале будет #define. файла, подобного этому
#ifndef MYCFILE_C_
#define MYCFILE_C_
Я видел, как это делают и другие редакторы (думаю, Codewright и SlikEdit).
#defines, похоже, ничего не делает для редактора, так как я могу просто удалить их без каких-либо проблем, и я не могу придумать причину, по которой я захочет их использовать. Кто-нибудь знает, зачем они там?





Это для защиты от несколько определений.
Я думаю, что это возврат проблем включения C, когда будут включены несколько копий исходного кода - если только вы не будете скрупулезно относиться к цепочкам включения (один файл включает n других). Выходом из положения была проверка, определен ли символ и в том числе, только если символ определен.
Иногда люди включают весь .c-файл в другие .c-файлы (или даже .h-файлы), поэтому он преследует ту же цель - предотвратить включение включаемого файла несколько раз, а компилятор выдает несколько ошибок определения.
Однако странно, что по умолчанию редактор помещает это в любой файл, кроме файла .h. Это редко используемая функция.
Более современная версия этого заключается в использовании:
#pragma once
Это довольно необычно видеть это в файле .c, обычно это только в файлах заголовков.
Есть вещи, которые должны быть включены в
*.h(например, определенияtypedefиstruct), но это не могу должно быть повторено. Так что это не возврат, как вы утверждаете.