c语言编译tc2.0怎么用?

c语言编译tc2.0怎么用我用记事本写了一大推c程序,用的.c括展名但是我英语不好、不会用tc2.0来编译!郁闷、编过程序的肯定提会的到!谁跟我说下、怎样用tc2.0来编... c语言编译tc2.0怎么用 我用记事本写了一大推c程序,用的.c括展名但是我英语不好、不会用tc2.0来编译!郁闷、编过程序的肯定提会的到!谁跟我说下、怎样用tc2.0来编译我用记事本写好的程序、只说编译,其它的用不到,在这谢谢个位了!
就用tc2.0,不过还是谢谢!
展开
 我来答
matlab2000
推荐于2016-07-05 · TA获得超过2321个赞
知道大有可为答主
回答量:1678
采纳率:100%
帮助的人:1045万
展开全部
拷贝一些给你,一般编译器要注意的就是include目录和lib目录,还有就是编译器调用的tcc,tlink之类的要在路径内。不过简单的菜单还是学一下吧,学编程还是需要一些英语的。

⒈首先要确保名为turboc.CFG的文件与TCC.EXE位于同一
目录下如同在C:\TC目录下。turboc.CFG的全部内容是
-IC:\TC\INCLUDE
-LC:\TC\LIB
它的作用是告诉TCC.EXE,.h文件和.lib文件在哪里。
⒉最简单的情形——当只需要编译连接一个C源文件
设含主函数main()的文件名为mfile.c(下同)
则用以下命令之一可使编译、连接"一步到位":
① tcc -f87 mfile.c <回车>
② tcc mfile.c <回车>
③ tcc mfile <回车>
命令①的效果优于命令②③因为 -f87 启动了协处理器
从而使最终得到的可执行文件mfile.exe代码短,速度快
命令②③的效果是用软件仿真协处理器的8087指令代码
既长速度且慢。当然如果机器上没有协处理器就只能采
用命令②或③了。若源文件的扩展名是c,则只须输入文
件的主名,小数点和'c'一并省略,故命令②③效果相同
【注】如果C源文件的扩展名不是c,则又分两种情况:
若无扩展名(例如:仅有主名mfile)则编译连接命令应为
tcc -f87 mfile. <回车>
别忘了末尾那个小数点!
若有扩展名(例如:mfile.cpp)则编译连接命令应为
tcc -f87 mfile.cpp <回车>
⒊较复杂的情形——数个C源文件编译后连接为一个程序
设除了源文件mfile.c外,还有1.sub和2.fun两个源文件
则此时"一步到位"的既编译又连接的命令如下:
tcc [-f87] mfile[.c] 1.sub 2.fun <回车>
以上含方括号[]的项表示可选择项(下同)。该命令的效
果是顺序编译这些C源文件因而先后生成以下目标文件
mfile.obj,1.obj,2.obj 随后连接并生成 mfile.exe
换言之以上命令的效果等价于下面所列命令序列的效果
tcc -c mfile[.c] <回车>
tcc -c 1.sub <回车>
tcc -c 2.fun <回车>
tcc [-f87] mfile.obj 1.obj 2.obj <回车>
应当指出:-f87 开关对于编译不起作用,但在连接阶段
将引导连接器TLINK.EXE与库文件 C:\TC\LIB\FP87.LIB
连接而不是缺省时的模拟库文件 C:\TC\LIB\EMU.LIB。
⒋更复杂的情形——C主文件和汇编模块连接为一个程序
设除源文件mfile.c外,还有汇编模块sub.asm和fun.asm
此时"一步到位"的既编译、汇编又连接的命令如下:
tcc [-f87] -B mfile[.c] sub.asm fun.asm <回车>
以上命令的效果等价于下面所列命令序列的效果:
tcc -c mfile[.c] <回车>
tasm -Mx sub[.asm] <回车>
tasm -Mx fun[.asm] <回车>
tcc [-f87] mfile.obj sub.obj fun.obj <回车>
⒌内存模式——Tiny,Small,Compact,Medium,Lagre,Huge
对应的开关是 -mt, -ms(缺省), -mc, -mm, -ml, -mh
注意该开关对于编译和对于连接都是有意义的。例如:
tcc -ml mfile[.c] <回车>
等价于这样2条命令:
① tcc -ml -c mfile[.c] <回车>
② tcc -ml mfile.obj <回车>
命令①中的 -ml 告诉编译器:代码和数据都是"远"的。
命令②中的 -ml 告诉连接器:连接MATHL.LIB和CL.LIB
⒍混合模式编程。例如:总体上是SMALL模式,但希望调用
按LARGE模式编写的函数。这是可以做到的,关键在函数
声明语句要强调代码和数据的 far 属性。 有这样一个
具体例子。在MS-Fortran4.0的库LLIBFR7.LIB中有个名
为CIXTOMX.OBJ的模块,其中定义了4个"远"函数。用C
语言编程调用这4个函数的关键是正确的函数原型声明
extern void far fmsbintoieee(float far*,float far*);
extern void far dmsbintoieee(double far*,double far*);
extern void far fieeetomsbin(float far*,float far*);
extern void far dieeetomsbin(double far*,double far*);
这样声明后,即使用 -ms 进行编译连接也能正常运行。
完整的程序见 D:\FOR4.0\ 目录下的
MS.C,CIXTOMX.OBJ,IXTOMX.OBJ,MS.EXE,ML.C,ML.EXE。
⒎连接阶段如何用TLINK.EXE完成。对于
tcc -f87 mfile.obj sub.obj fun.obj <回车>
在缺省的SMALL模式下也可以用以下命令实现连接:
TLINK c0S mfile sub fun,mfile,nul,maths fp87 cs <回车>
同理对于
tcc -ml mfile.obj sub.obj fun.obj <回车>
则相当于执行下列命令:
TLINK c0L mfile sub fun,mfile,nul,maths emu cs <回车>
其中启动代码即C的初始化程序C0S.OBJ或C0L.OBJ可以
在C:\TC\LIB\下找到,它们的源程序在C:\TC\STARTUP\
目录下——该目录中的MAIN.C程序也值得关注。
wjcmqyd
2017-11-01 · TA获得超过5629个赞
知道大有可为答主
回答量:3236
采纳率:79%
帮助的人:827万
展开全部
与网友分享
勇于探索 追求简朴
学习《C语言的科学和艺术(中文版)》随记
#include <stdio.h>
#include "genlib.h"
#include "simpil.h"
#define Sunday 0
#define Monday 1
#define Tuesday 2
#define Wednesday 3
#define Thursday 4
#define Friday 5
#define Saturday 6
void GiveInstructions(void);
int GetYearFromUser(void);
......;
bool IsLeapYear(int year);
main()
{
int year;
GiveInstructions();
year = GetYearFromUser();
PrinCalendar(year);
}
void GiveInstructions(void)
{
......;
}
......
......
......
bool IsLeapYear(int year)
{
return (((year%4==0) && (year%100 != 0)) || (year%400==0));
)
以上是美国 Eric S. Roberts 博士编著的《C语言的科学和艺术》一书中第5章的例题程序(由于该程序较长,为使本文篇幅短小,故未全部录下)。能编著这样一本关于计算机知识的书,应该是大师级的水平。该例题是一个输入不小于1900即可打印输入年份月历的程序。由于本人初学C语言,刚开始被该例题程序的函数嵌套调用搞得晕头转向,看了好长时间才终于弄明白该程序的功能。首先要说明的是:TURBO C 2.0 没有该书作者自己编写的函数库,几经周折从网上找到所需源程序,却不能通过编译,只得改用C标准库的函数。改用C标准库的函数,就必须对书中的例题程序作较大改动,也同样费了不少周折才终于通过编译。
在学习过程中,本人发现该例题程序有好多问题。
1. 用 define 定义了在程序中用不到的多余符号常量;
2. 定义的函数过多,令人看得眼花缭乱;
3. 函数的层层嵌套调用使得程序逻辑混乱,将人搞得晕头转向。
4. 函数 int FirstDayOfMonth(int month,int year) 被调用12次,而其中求从2月份到12月份第一天是星期几的 for 循环也是多余的。
于是本人经过思考,决定修改该程序。修改后的程序短小精悍,函数调用无层层嵌套现象,看得清楚明白,也没有多余的函数调用。经过修改后的程序可以通过 GCC10、WINTC、TURBO C 2.0 编译器的编译,但只有 GCC10 编译器编译的该程序才能正常显示中文。修改后的程序附在本文的最后。
学而后思,获益不菲;学而不思,难得真谛。我们应当敬重大师,向大师虚心学习。但不能迷信大师,大师写出的东西不可能都是经典范例,更不是改不得的金科玉律,要用自己的头脑思考,去发现问题并解决问题,从而提高自己的认识水平及解决问题的能力。而这正是我们学习的最终目的。
附经过修改后的例题程序如下:
#include <stdio.h>
#define MOND 1
#define SATU 6
void prim(int month,int year,int ndays,int weekday);
int firs(int year);
int main(void)
{
int year=0,month,weekday,ndays[12]={31,28,31,30,31,31,30,31,30,31,30,31};
printf(" 这是一个输入年份数即可打印该年份年历的程序\n");
while(year<1900)
{
printf(" 请输入一个不小于1900的年份数: ");
scanf("%d",&year);
}
printf("\n");
if(((year%4==0) && (year%100 != 0)) || (year%400==0))
ndays[1]=29;
weekday=firs(year);
for(month=1;month<13;month++)
{
prim(month,year,ndays[month-1],weekday);
weekday=(weekday+ndays[month-1])%7;
printf("\n");
}
printf(" %d 年历已打印完毕, 再见!",year);
return 0;
}
void prim(int month,int year,int ndays,int weekday)
{
const char yue[12][10]={"1月","2月","3月","4月","5月","6月","7月",
"8月","9月","10月","11月","12月",};
int i,day;
printf(" %d年 %s\n",year,yue[month-1]);
printf(" 日 一 二 三 四 五 六\n");
for(i=0;i<weekday;i++)
printf(" ");
for(day=1;day<=ndays;day++)
{
printf(" %2d",day);
if(weekday==SATU)
printf("\n");
weekday=(weekday+1)%7;
}
if(weekday+6 != SATU)
printf("\n");
}
int firs(int year)
{
int weekday=MOND,i;
for(i=1900;i<year;i++)
{
weekday=(weekday+365)%7;
if(((i%4==0) && (i%100 != 0)) || (i%400==0))
weekday=(weekday+1)%7;
}
return weekday;
}
写于17:41 2017/11/1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bff0ff3
2011-10-02 · 超过13用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:41.6万
展开全部
你还是用Win-tc 去编译吧。、 虽然很久的了。但好用,适合菜鸟、
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GIS广益DATA
2011-10-01 · TA获得超过2517个赞
知道大有可为答主
回答量:4658
采纳率:20%
帮助的人:2787万
展开全部
你可以尝试用WIN-TC来编译C程序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浪次游沐见念9882
2011-10-03
知道答主
回答量:1
采纳率:0%
帮助的人:1697
展开全部
百度文库中有,你查一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式