Ads 468x60px

##EasyReadMore##

10 2月, 2017

c 語言使用 tcl API 來做公式運算

要在 C 做下面公式運算太麻煩了
(1+2)/3 < 9 && (5-4)*4 > 2
所以使用 Tcl 的 API 來做一切都簡單多了

先下載 tcl source code 來編譯
https://tcl.tk/software/tcltk/download.html
選擇 tcl866-src.zip 下載

編譯靜態 tcl libary:

pushd tcl8.6.6/
cd unix
./configure --host=i586 --disable-shared
make
cp libtcl8.6.a ../../unqlite-db-117
cp ../tcl8.6.6/generic/*.h ../../unqlite-db-117/include

範例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <stdlib.h>
#include <tcl.h>

int main(int argc,char *argv[])
{
 char *test = "(1+2)/3 < 9 && (5-4)*4 > 2";
 double ret = 0.0;

 Tcl_Interp *interp = Tcl_CreateInterp();

 if (Tcl_ExprDouble(interp, test, &ret) == TCL_OK)
  printf("%f", ret);
 else
  printf("xxxxxx");
 
 return 0;
}


編譯範例:

$CC tcl_expr.c -L . -I ./include -ltcl8.6 -lm -ldl -lz –lpthread

參考:

Tcl_ExprLong manual page - Tcl Library Procedures - https://goo.gl/A1AAek
Adding Tcl/Tk to a C application - https://goo.gl/H2QZoV

0 意見:

張貼留言

 
Blogger Templates