為什么在C ++頭文件中使用#ifndef和#define?我一直在頭文件的開頭看到這樣的代碼:#ifndef HEADERFILE_H#define HEADERFILE_H并在文件的最后是#endif這樣做的目的是什么?
3 回答

長風秋雁
TA貢獻1757條經(jīng)驗 獲得超7個贊
#ifndef <token>
/* code */
#else
/* code to include if the token is defined */
#endif
#ifndef檢查給定標記是#defined在文件中還是在包含文件中更早; 如果沒有,它包括它和關閉之間的代碼#else,或者如果沒有#else存在,#endif語句。#ifndef通常用于通過在包含文件后定義令牌并檢查令牌未設置在該文件的頂部來使頭文件具有冪等性。
#ifndef _INCL_GUARD
#define _INCL_GUARD
#endif

眼眸繁星
TA貢獻1873條經(jīng)驗 獲得超9個贊
這可以防止多次包含相同的頭文件。
#ifndef __COMMON_H__
#define __COMMON_H__
//header file content
#endif
假設您已將此頭文件包含在多個文件中。因此,第一次沒有定義__COMMON_H__時,它將被定義并包含頭文件。
下次定義__COMMON_H__時,它將不再包含。
- 3 回答
- 0 關注
- 1508 瀏覽
添加回答
舉報
0/150
提交
取消