帮助文档Word文件下载.docx
- 文档编号:19237243
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:5
- 大小:18.38KB
帮助文档Word文件下载.docx
《帮助文档Word文件下载.docx》由会员分享,可在线阅读,更多相关《帮助文档Word文件下载.docx(5页珍藏版)》请在冰豆网上搜索。
你可以在运行TC时设置你的选项,然后按Alt-O/S保存。
Q.为什么我得到这样的消息:
LinkerError:
Unabletoopeninputfile'
C0x.OBJ'
?
A.连接器linker在TC的库目录下查找TC的启动文件和库文件。
这个设置在Options/Directories菜单下。
安装程序初始化这个选项到拷贝有启动文件和库文件的路径下。
Q.为什么当我#include<
stdio.h>
时,TC报告:
"
Unabletoopenincludefile'
stdarg.h'
A.最有可能是你打开的文件太多,超过了dos的限定。
在DOS的CONFIG.SYS里增加一行FILES=20,允许dos同时打开20个文件。
CONFIG.SYS会在重启后生效。
参考《IBMDOS手册》。
Q.为什么连接器告诉我allthegraphicslibraryroutinesareundefined(所有的图形库例程都未定义)?
A.IDE中Options/Linker/GraphicsLibrary这个选项必须设成“ON”,如果你使用TC图形库函数并且没有在工程文件里加入GRAPHICS.LIB的话。
例如编译BGIDEMO(译注:
TC自带的图形功能的DEMO程序),需在命令行下键入:
TCCBGIDEMO.CGRAPHICS.LIB<
Enter>
Q.HowdoIchangethecolorsoftheeditorandmenusinTC?
A.TheutilityTCINST.EXEallowsyoutocustomizeyourcolors.
Q.怎样改变TC中编辑器和菜单的颜色?
A.TCINST.EXE允许你自定义这些颜色。
Q.我怎样在打印机上打印一个代码串?
A.在TC中按<
Ctrl>
<
K>
P>
,将会打印一个标记块。
如果没有标记块就会打印整个代码。
GeneralI/O
Q.在cprintf()函数里用'
\n'
并没有使光标回到下一行开头,它只是移到了正下方。
A.cprintf()不把'
解释成行终结符/起始符的组合,它仅作为起始符。
想换行需要手工强制插入行终
止符:
cprintf("
\n\r"
);
Q.我怎样将TC里的程序打印出来?
A.TC使用了一个文件指针(stdprn译注:
作为打印机的输出流),它在STDIO.H中定义。
你需要这样打开stdprn:
#include<
main()
{
fprintf(stdprn,"
Hello,world\n"
}
注意如果你的打印机是行缓冲的,将以'
截断输出。
Q.HowdoIprintalongdouble?
A.Usethe"
%Lf"
format.
longdoubleldbl=1E500;
printf("
ldbl);
Q.怎样输出长整形数?
A.使用"
格式符。
Q.怎样创建一个COM文件?
A.DOS3.2以前的版本都包括EXE2BIN这个命令用来把EXE转换成COM。
对于没有EXE2BIN的用户,TC命令行连接器-TLINK的/t选项能够取而代之创建COM文件。
例如:
tcc-mt-lttiny
将会创建TINY.COM代替TINY.EXE。
EXE转COM有明确的限制。
在《IBMDOS系统手册》里可查到。
TC的TINY(微)模式和COM形式兼容,但用到符点例程的程序不能够转换。
Graphics
Q.为什么当我使用图形函数时得到错误信息:
BGIError:
graphicsnotinitialized(use'
initgraph'
)?
我的程序明明已经调用了initgraph().
A.想知道为什么初始化函数出错,可以检查graphresult()的返回值。
graphics.h>
intgerr;
/*graphicserror*/
intgdriver=DETECT,gmode;
/*Initializegraphicsusingauto-detectionandlook
forthe.BGIand.CHRfilesintheC:
\TURBOCdirectory.
*/
initgraph(&
gdriver,&
gmode,"
C:
\\TURBOC"
if((gerr=graphresult())!
=grOk)
Error:
%s\n"
grapherrormsg(gerr));
exit
(1);
:
Math/FloatingPoint
Q.我怎样捕捉浮点错误?
A.在TC指南中查看signal()和matherr()两个函数。
signal()函数可能用来捕捉80x87协处理器或80x87仿真器。
matherr()函数捕捉的是math函数库的错误。
LinkerErrors
Q.为什么我得到LinkerError:
Undefinedsymbol'
_main'
inmoduleC0的信息?
A.每个C程序必须调用main()函数。
这是你程序执行的第一个函数。
Thefunctionnamemustbeallinlowercase.如果你采用多文件编译,工程的所有源文件中有且只能有一个main()函数。
Q.我在用TC连接汇编语言时,编译器报告说所有的函数未定义。
A.确保在所有的汇编函数名前都加了下划线'
_'
。
YourassemblylanguageprogramshouldbeassembledwithCaseSensitivity.
OtherQuestions
Q.我怎样改变栈的大小?
A.TC中栈的大小是由运行时全局变量_stklen决定的。
如想把大小改成10000字节,需在程序中包括下面一行:
externunsigned_stklen=10000;
这个声明不能出现在任何函数内部。
默认的栈大小是4096字节(4K)。
Q.我在程序运行是得到了一条'
StackOverflow!
'
的消息,怎么办?
A.你可以使用下面的处理方法使栈增加。
栈的溢出通常是由局部数据或递归函数引起的。
你可以通过对变量静态类型的声明来生命栈的数量。
main()main()
{{
charx[5000];
-->
staticcharx[5000];
}}
Q.我的程序出现'
Nullpointerassignment'
,什么意思?
A.在TC小数据模式返回到DOS前,会检查数据段的开头是否有误。
这个消息警告,你可能使用了未定义的指针或程序的内存被不正确的使用。
Q.为什么TCC生成的.EXE文件比TC的小?
A.TC的默认配置是,在EXE创建时包括debugging信息,然而TCC并没有这么做。
如果你不想产生debugging信息,可以在IDE中按Alt-D/S/N关闭此功能。
Q.为什么会因为DOS.H导致错误信息:
declarationsyntaxerror"
A.想把TC关键字用于特别用途的时候,必须把"
Ansikeywordsonly"
关上。
Q.我能为全局变量声明64K以上的内存吗?
A.在Tiny,Small,Medium,Compact和Large几个内存模式下只要用static静态变量就好了。
在Huge模式下,每个sourcemodule(代码模块)都有64K。
Q.我怎样声明才能使数组超过64K?
A.更大的数组必须在建立堆之外。
例如1024*128的二维数组:
alloc.h>
char(huge*array)[128];
array=farcalloc(sizeof(*array),1024);
Thearraycanbeaccessedwiththesamecodeasanarraynot
allocatedofftheheap.
必须使用"
huge"
关键字声明"
array"
,因为只有huge指针能超越64K的地址。
注意:
下划线'
被用于所有外部符号的prepended(预处理)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 帮助 文档