誰幫忙給個簡單的預編譯器中“宏替換部分”的源代碼。。。c或c++的。。謝謝了。
uj5u.com熱心網友回復:
自頂。。。。。。uj5u.com熱心網友回復:
#define msg(str) ShowMessage(str);
msg("hello");
uj5u.com熱心網友回復:
就拿這個例子來講,應該改成:
#define msg(str) ShowMessage(str)
msg("hello");
或
#define msg(str) ShowMessage(str);
msg("hello")
注意細微差別。
uj5u.com熱心網友回復:
看了很久,才找出來,多了個分號啊!uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
我是要自己寫給預編譯器,簡單的。。缺個對宏替換的實作。uj5u.com熱心網友回復:
我是要自己寫給預編譯器,簡單的。。缺個對宏替換的實作。
uj5u.com熱心網友回復:
我是要自己寫給預編譯器,簡單的。。缺個對宏替換的實作。
uj5u.com熱心網友回復:
沒明白你的意思。uj5u.com熱心網友回復:
現在我自己想做個簡單的預編譯器,只包含“宏替換功能”。。求代碼。基本意思是:打開一個txt檔案,查找有無宏替換命令列(如:#define MAX=100;),有就將后面程式中的MAX換做100;沒有就不用操作。。。。沒時間寫,感覺不是很難。
uj5u.com熱心網友回復:
后面程式中的MAX換做100?是檔案中的max換成100呢,還是什么代碼判斷啊根據你的思路,是不是來個宏定義更合適
#deinfe max
#ifdef max
....
#endif
uj5u.com熱心網友回復:
那你的需求就有些復雜了,需要做代碼格式化,然后語意分析等等……
uj5u.com熱心網友回復:
不用語意分析的,只要查找到被宏定義的,如max.就替換為100就行了
uj5u.com熱心網友回復:
后面程式中的MAX換做100?是檔案中的max換成100呢,還是什么代碼判斷啊
根據你的思路,是不是來個宏定義更合適
#deinfe max
#ifdef max
....
#endif
就是說讓你自己寫個代碼打開一個txt檔案。查找檔案中有沒有宏替換如,#define max 100.沒有就不用操作。有的話就將檔案中所有其他max換作100。其實就是宏替換的具體實作。不用函式宏替換的,就簡單值的宏替換就行
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/143339.html
標籤:基礎類
