佛山网站建设专业品牌山东省住房城乡建设厅查询网站
佛山网站建设专业品牌,山东省住房城乡建设厅查询网站,网站如何做微信支付,公司变更告知函怎么写2019独角兽企业重金招聘Python工程师标准 教你在C 程序里调用TI-BASIC程序#xff0c;看看是否有人对这个感兴趣 昨天翻TIGCC的文档#xff0c;先瞅了瞅FAQ#xff0c;话说我看文档有个习惯#xff0c;就是先看目录#xff0c;再看FAQ#xff0c;因为FAQ汇… 2019独角兽企业重金招聘Python工程师标准 教你在C 程序里调用TI-BASIC程序看看是否有人对这个感兴趣 昨天翻TIGCC的文档先瞅了瞅FAQ话说我看文档有个习惯就是先看目录再看FAQ因为FAQ汇集了很多人曾经遇到过的问题、犯过的错误 而且涵盖各种不同难度非常值得一看。 在FAQ中看到教人用C程序调用TI-BASIC程序的示范代码正好我最近在 研究TI-BASIC就想试试原来的例程如下我加了一下注释你会发现C语言的特点是从右往左执行 // 在C中定义一个 函数参数是TI-BASIC的程序名称
void progrun(const char *name)
{ // 定义字符串变量 char fname[25]; // 定义一个HANDLE型指针变量 hh 将来使用时会按照HANDLE结构动态分配一个内存块把内存块入口地址关联到 h h 实际是一个HANDLE结构型的内存指针变量 HANDLE h; // 把TI-BASIC程序名称拷贝到我们定义的字符串变量 fname 中 strcpy (fname, name); // 在 fname 追加()假设fname里原来的数据是myprgm执行strcat后就变成myprgm() strcat (fname, ()); // 解析字符串fname里的表达式并且把tokenized标识化的表达式内容全部压入到表达式栈中 push_parse_text (fname); // 这个语句要从后往前分析HS_popEStack () 做的是分配一个内存区域然后把刚才压栈的表达式出栈并且把出栈的内容拷贝到新分配的内存块里最后把这个内存块的地址当做一个结构指针变量返回给 h h HS_popEStack (); TRY // 调用 NG_execute 来执行 h 也就是执行 TI-BASIC 程序 NG_execute (h, FALSE); FINALLY // 最终执行完毕释放 h 使用的内存 空间 HeapFree (h); ENDFINAL
} 最后在你的 main 函数里调用 progrun 就可以了这里假设你已经在 计算器上准备好了一个名为 testprog 的TI-BASIC 程序 progrun (testprog); 我用TIGCC在PC上编译了一次OK又在 计算器上用GTC编译了一次也OK下面是我稍作修改后的代码因为例子里没有让TI-BASIC程序带参数我改写了一个带参数版本的其实简单就是把你的PRGM的内容全部传到 progrun 里就可以了然后把追加括号的语句注释掉即可。不过这个带参数的 功能不完全因为TIGCC的 main函数没有 argc 和 argv所以我还没搞清楚 如何在主程序中带参数因此这里默认的PRGM程序名称为 apic(1,2) 有两个参数所以你需要事先在计算器上创建一个名称为apic的PRGM程序这个程序带两个参数。 下面是代码 #define USE_TI89
#define OPTIMIZE_ROM_CALLS
#define MIN_AMS 101
#include tigcclib.h
void progrun(const char *name)
{ char fname[25]; HANDLE h; strcpy (fname, name); //strcat (fname, ()); push_parse_text (fname); h HS_popEStack (); TRY NG_execute (h, FALSE); FINALLY HeapFree (h); ENDFINAL
} // Main Function
void _main(void)
{ progrun (apic(0,0)); //progrun (apic(0,100)); ngetchx();
} 这里是编译好的程序用法就是直接在home界面执行 cb() 转载于:https://my.oschina.net/freeblues/blog/62925
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/88456.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!