我知道運算子多載,但這不是我要說的。
我用 C 做了很多科學計算。例如,我必須計算梯度、點積、拉普拉斯算子、粗麻布算子……
所有這些通常都有明確定義和標準的數學符號。梯度使用 nabla,粗麻布 nabla^2 拉普拉斯 \delta ...
我通常必須寫vec Gradient(fun_ptr)或Hessian(fun_ptr)。
問題是這使得代碼偏離了我正在實作的論文,并且當你復制錯誤的東西時它變得更難捕捉。
例如,有沒有辦法將 \nabla 字符定義為運算子?
uj5u.com熱心網友回復:
有沒有辦法在 C 中定義運算子?
不可以。您只能多載(部分)C 中自定義型別的現有運算子。
您可以定義實作所需操作的函式,并且如果您將源代碼編碼為具有這些符號的字符集(即您使用 Unicode),并且您的編譯器支持它(由于符號不是,因此無法保證) t 基本字符集的一部分),那么您可以使用這些符號作為這些函式的名稱。但是您不能在 C 中使用中綴表示法呼叫函式。
(或其他語言)
您可以在 Haskell 中定義中綴函式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/428612.html
