Авто определяет в редакторах C ... Почему? - PullRequest
3 голосов
/ 01 сентября 2008

Когда Eclipse создает новый файл ( .c или .h файл) в проекте C, редактор всегда автоматически создает #define в начало файла примерно так: если файл называется «myCFile.c», в начале файла будет #define, например

#ifndef MYCFILE_C_
#define MYCFILE_C_

Я видел, что другие редакторы тоже это делают (я думаю, Codewright и SlikEdit). #defines, похоже, ничего не делает для редактора, поскольку я могу просто удалить их без проблем, и я не могу придумать причину, по которой I захочет использовать их. Кто-нибудь знает, почему они там?

Ответы [ 4 ]

4 голосов
/ 01 сентября 2008

Это для защиты от нескольких определений .

2 голосов
/ 01 сентября 2008

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

Странно, однако, что поведение редактора по умолчанию было бы помещать это во что угодно, кроме файла .h. Это было бы редко необходимой функцией.

1 голос
/ 02 сентября 2008

Более современная версия должна использовать:

#pragma once

Довольно необычно видеть это в файле .c, обычно это только в заголовочных файлах.

0 голосов
/ 01 сентября 2008

Я думаю, что это возврат к проблемам C include, когда в него будут включены несколько копий исходного кода - если только вы не будете осторожны с цепочками включения (один файл включает n других). Проверка того, определен ли символ и в том числе ли его определение, была выходом из этого.

...