我想在帕斯卡(freepascal)中定義的東西。 在C++中,你可以通過變量定義的宏是這樣的:傳遞參數在帕斯卡定義
#define REP(i,k) for(int i=0; i<k; i++)
你怎麼能在帕斯卡做呢?
我在第一行添加了{$MACRO ON}
命令,因此它可以運行正常定義而沒有像{$define lala:='hello world'}
這樣的錯誤。
但是,當我嘗試{define lala(i):=i}
程序出現錯誤。
如何在Pascal中傳遞可變參數?
我想在帕斯卡(freepascal)中定義的東西。 在C++中,你可以通過變量定義的宏是這樣的:傳遞參數在帕斯卡定義
#define REP(i,k) for(int i=0; i<k; i++)
你怎麼能在帕斯卡做呢?
我在第一行添加了{$MACRO ON}
命令,因此它可以運行正常定義而沒有像{$define lala:='hello world'}
這樣的錯誤。
但是,當我嘗試{define lala(i):=i}
程序出現錯誤。
如何在Pascal中傳遞可變參數?
使用外部預處理器,並在結果中使用Pascal編譯器之前在構建系統中執行它。
FPC宏系統不適用於元編程,而是用於在頭文件和緊湊型啓用/禁用邏輯中調用約定宏(如home-brewn聲明和其他調試日誌代碼),並且不支持參數化。
非衛生宏從根本上與Pascal單元系統不兼容,衛生宏由內聯函數/程序覆蓋。
感謝您的回答。我只想用pascal編寫一些模板,就像C++ hahaha一樣。那麼我只會使用函數和過程。 –
FPC具有泛型。 –
你不想這樣做。在C++中這是一個糟糕的主意。不要複製不好的想法。 –
根據「程序員指南」第1.2.48節的內容:「在{$ MACRO ON}狀態下,編譯器允許使用C型(儘管沒有詳細說明)宏。」 宏「。請注意「不太精細」部分。我不認爲參數是支持的。 – tonypdmtr