1樓:coderm
目前include的功能很簡單,就是在該位置將檔案替換展開。如果要實現include_once需要做什麼呢?需要維護乙個列表,每展開乙個新檔案,就要去查一遍這個列表。
這對於預處理器來說有點太難了——預處理命令都是一些很弱的功能,做做簡單的文字替換,它們本來就是被設計成了不理解程式更不理解工程的,否則會對語言本身形成干涉。(——當然後來大家大量用巨集替換來實現功能,我只能說呵呵了。)
2樓:nul nul
yu xia 說的對.
舉個例子, 你需要在多個函式中使用乙個點陣字, 而又不想把它放到全域性變數那裡, 假設這個點陣字是這樣的
// 漢
0x20,0x00,
0x10,0x00,
0x17,0xFC,
0x02,0x08,
0x82,0x08,
0x49,0x10,
0x49,0x10,
0x11,0x10,
0x10,0xA0,
0x20,0xA0,
0xE0,0x40,
0x20,0xA0,
0x21,0x18,
0x26,0x0E,
0x28,0x04,
0x00,0x00,
可以把上面這個點陣字儲存在 han.data 裡面, 在需要使用這個點陣字的函式裡面, 這樣使用:
char han = ;
這樣, 你在乙個檔案裡面就可能需要多次 include 這個 "han.data" 檔案.
要是你讓預處理器自動處理使得乙個檔案只包含另乙個檔案一次, 喔哦~ 為什麼要那樣做呢?
3樓:下愚
有需要重複include同乙個檔案多次的情況,完全取決於你的需要。簡單的說,為了實現只include乙個檔案一次,你增加了預處理的實現邏輯反而減少了功能,為什麼要這麼做呢?
機器學習資料預處理的目的是什麼?
深藍遠景 採集來的資料有時候不一定完整,比如醫療資料,有時候沒錄上,有時候隨便寫個數字,也有乙個特徵有資料其他全部為0的資料,這些資料在訓練的時候會影響模型的效率和結果,所以需要預處理 花月正春風 你要知道這樣一句話,機器學習的上限取決於資料特徵本身,也就是說,機器學習的天花板就是由好的資料特徵決定...
我為什麼會在《我的世界》指令裡遇到了問題?
MineCommander 0.打好基礎 Minecraft命令全教程 以下為正文 1.看命令裡還有部分語法錯誤 比如座標間沒有空格 如果你是把原命令認真照搬過來的話要仔細檢查一下 2.我只知道je版怎麼做,但可能會用到1.13 的excute和nbt等基岩版沒有的功能,大致邏輯是這樣 檢查魚勾 0...
回合制 RPG 裡的 防禦 指令為什麼沒被刪除?
亂碼君 補充一種情況 有一類rpg,防禦就是為了不攻擊 不攻擊就是為了輸 輸了就可以看戰敗cg 後來這種遊戲系統上增加了開局自動輸的方法 alpho 防禦這個指令在atb裡極為有用。就拿閃軌做例子,如果敵方正在蓄力,而我方無法迴避或者打斷,那麼防禦就是最好的選擇。並且防禦 等待 的delay一般會設...