什么时候 创建一个新文件(。C 或者 。H 文件)在 C 项目中编辑器总是自动创建一个 #define 在文件的顶部,如下所示:如果文件名为“myCFile.c”,则会有一个 #define 像这样在文件的开头

#ifndef MYCFILE_C_
#define MYCFILE_C_

我见过其他编辑器也这样做(我认为是 Codewright 和 SlikEdit)。这 #defines 似乎没有为编辑器做任何事情,因为我可以毫无问题地删除它们,而且我想不出原因 会想要使用它们。有谁知道他们为什么在那里?

有帮助吗?

解决方案

是为了防范 多重定义.

其他提示

有时人们将整个 .c 文件包含在其他 .c 文件(甚至 .h 文件)中,因此它具有完全相同的目的,即防止包含文件被多次包含以及编译器吐出多个定义错误。

但奇怪的是,编辑器的默认行为是将其放入除 .h 文件之外的任何文件中。这将是一个很少需要的功能。

更现代的版本是使用:

#pragma once

在 .c 文件中看到这一点是很不寻常的,通常它只出现在头文件中。

我认为这是 C 包含问题的倒退,其中源代码的多个副本将被包含 - 除非您对包含链非常细致(一个文件包含 n 个其他文件)。检查符号是否已定义并仅包含该符号是否已定义 - 是解决此问题的一种方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top