C中的代码中包含哪些内容?

C中的代码中包含哪些内容?,c,include,C,Include,请, 你能告诉我下面的代码是做什么的吗 ...code... #include file.h ...code... 我习惯于在每个文件的开头加上一个附件。我以前从未见过这种情况,在internet上也找不到任何东西。\include是一个预处理器指令,它将给定的文件作为参数,并将其内容转储到当前文件中。通常,它用于包含头文件中的commons函数定义,但没有必要以这种方式使用它。它的用法不限于文件的开头,但请注意,即使在同一个文件中,在include语句之前,此标题中声明的宏或函数也不可用。正

请, 你能告诉我下面的代码是做什么的吗

...code...
#include file.h
...code...

我习惯于在每个文件的开头加上一个附件。我以前从未见过这种情况,在internet上也找不到任何东西。

\include
是一个预处理器指令,它将给定的文件作为参数,并将其内容转储到当前文件中。通常,它用于包含头文件中的commons函数定义,但没有必要以这种方式使用它。

它的用法不限于文件的开头,但请注意,即使在同一个文件中,在include语句之前,此标题中声明的宏或函数也不可用。

正如大家所说的那样#include可以在任何地方使用(只要它在自己的逻辑行上)。在某些情况下,您希望多次包含同一文件。首先阅读wikipage和wikipage

我有一个具体的例子(关于…)

我有一个(生成的)文件,其中包含如下行
MOM\u预定义\u命名(
name
id
hash

MOM_PREDEFINED_NAMED(GET,_9dsak0qcy0v_1c5z9th7x3i,1573018885)
MOM_PREDEFINED_NAMED(HEAD,_47fatww79x6_vh8ap22c0ch,3922245622) 
MOM_PREDEFINED_NAMED(web_handler,_7sav6zery1v_24sa6jwwu6c,2339220870)
#undef MOM_PREDEFINED_NAMED
我的文件(真正的头文件)定义了外部指针和枚举,因此:

// declare the predefined
#define MOM_PREDEFINED_NAMED(Name,Id,H) extern momitem_t* mom_named__##Name;
#include "predef-monimelt.h"

/// declare the hash of the predefined as an enum
#define MOM_PREDEFINED_NAMED(Name,Id,H) mom_hashname__##Name = H,
enum {
#include "predef-monimelt.h"
};
我的文件包含一个例程:

  // if this routine is compiled, we are sure that all predefined hashes
  // are unique
  const momitem_t *
  mom_predefined_item_of_hashcode (momhash_t h) {
    switch (h) {
  #define MOM_PREDEFINED_NAMED(Nam,Id,Hash) case Hash: return mom_named__##Nam;
  #include "predef-monimelt.h"
    default:
    return NULL;
     }
  }
但是my包含两次
predef monimelt.h
文件(以在初始化时创建预定义项并定义其变量):


FWIW,熔体监视器是GPLv3+许可软件

请在“包括”上下显示几行!可能是在我不知道的函数声明之前(代码所做的是:它包含一个文件!因为你知道,你可以…),预处理器允许指令位于源文件中的任何位置(只要它们在自己的行上,第一列中有
#
),它不必位于特定的位置。因此,
#include
指令的作用与您习惯的一样,它将另一个文件的内容包含到当前文件中。它的作用与文件顶部的#include相同。它只是在另一个地方做。本质上,它打开包含的文件,并将该文件的内容复制到#include语句所占用的空间中。我认为它可能位于函数声明之上,然后您需要这个库,或者下面的代码是什么标准,ANSI或Turbo标准??
 void mom_create_predefined_items (void) {
   int nbnamed = 0;
 #define MOM_PREDEFINED_NAMED(Nam,Id,H) do { \
   mom_named__##Nam = mom_make_item_of_identcstr(#Id); \
   mom_named__##Nam->i_space = momspa_predefined; \
   mom_register_item_named_cstr (mom_named__##Nam, #Nam); \
   nbnamed ++; \
 } while(0);
 #include "predef-monimelt.h"
 } // end of mom_create_predefined_items

 // declare the predefined
 #define MOM_PREDEFINED_NAMED(Nam,Id,H) momitem_t* mom_named__##Nam;
 #include "predef-monimelt.h"