2013-01-23 75 views

回答

2

你必須自己動手,C沒有提供任何方法來做到這一點。 C是一種非常低級的語言。最簡單的方法是找到一個庫,或者如果這個庫不存在,使用lex + yacc來創建你自己的解釋器。

快速谷歌提出以下建議:

+2

C是不是一個低級語言; C標準以「抽象狀態機」的形式描述它。這意味着它不受任何特定架構的約束,比如x86 ASM綁定到x86處理器,ARM ASM綁定到ARM處理器等。C是第三代編程語言;所有的低級編程語言都是第一代或第二代。 C語言中有許多高層次的構造,使其成爲高層次的。考慮結構的前向聲明,關於可變長度數組的sizeof運算符,靈活的數組成員等。 – Sebivor

+0

@modifiablelvalue:我認爲我們認爲它是「低級」的原因是因爲它非常成功,它已經呈現真正的低級語言已經過時。 –

+0

我認爲你有低級語言的錯誤概念,c是低級語言,請問Kernighan&Ritchie。你在說的是機器語言。 – wich

1

你應該嘗試TinyExpr。它是一個單獨的C源代碼文件(沒有依賴關係),您可以添加到您的項目中。

使用它來解決你的問題就是:

#include <stdio.h>  
#include "tinyexpr.h" 

int main() 
{ 
    double result = te_interp("2*8-5+6", 0); 
    printf("Result: %f\n", result); 
    return 0; 
} 

,將打印出來:Result: 17