簡體   English   中英

預處理器 C 程序替換包含頭文件

[英]Preprocessor C program to replace include headers

我有家庭作業,我需要編寫一個程序來用actual.h'文件替換C文件的包含命令(假設沒有標准庫包含)(執行預處理器的工作)。

我想使用正則表達式匹配,但由於我們只允許使用 ansi-C 的標准庫,所以不允許使用正則表達式。

我不確定這樣做的有效方法是什么?

編輯:無需檢查#defines#ifdefs

我建議您按照本指南創建程序:

  1. 以只讀方式打開目標 c 文件。
  2. 打開目標文件只寫。
  3. 創建一個 function 傳遞輸入文件和 output 文件,我將調用此 function “expand_function”。
  4. 在expand_function中讀取輸入的每個字節,並在讀取每個字符時檢查是否為#,然后測試是否為include關鍵字,最后如果所有條件都匹配,則打開將在include前面的文件名,然后調用再次使用新的輸入文件和相同的 output 文件的 expand_function(不要忘記關閉所有打開的文件),最后繼續循環。 如果任何條件不匹配,則將所有讀取字節寫入 output 文件中。
  5. 額外:檢查您是否沒有在 expand_function 開頭的包含死循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM