[英]include header files in C
我是C和C ++語言的新手,我對C中的頭文件有疑問:
啊
#define HELLO (1)
typedef struct
{
int a;
int b;
} hello;
BH
#include "a.h"
#define NUMBER (3)
main.c中
#include "b.h"
在main.c
,可以在main.c
使用ah
定義的struct
和macro
嗎?
確保可以在main.c中同時使用Struct和MACROS
您需要了解C編譯過程,在對main.c進行編譯或鏈接之前,需要執行預處理器步驟:
預處理器 :
所以main.c實際上看起來像這樣:
#define HELLO (1)
typedef struct
{
int a;
int b;
} hello;
#define NUMBER (3)
然后替換所有宏,這里您不使用HELLO或NUMBER,因此純c主文件將是:
typedef struct
{
int a;
int b;
} hello;
是的,可以使用。 這是#include
頭文件的唯一目的。
有關更多信息,您可以查看代碼的預處理版本。 采用
gcc -E <filename.c> //main.c, in this case
在那里,您可以在隨附的頭文件中看到struct
和MACROS定義的存在。
是的,出現在包含文件中的#include
指令本身具有正常的作用,直到實現定義的包含級別數限制。 “正常效果”等效於文本插值-也就是說,對於包含文件的內容沒有單獨的作用域確定-因此,出現在任何直接或間接包含文件中的任何聲明對於包含點之后的所有代碼都是可見的。
是的,#include語句可以將多個文件鏈接在一起。 #include實際上將一個文件的內容復制並粘貼到另一個文件中,因此您可以將其視為一個接一個的效果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.