减少不必要的BAK文件
当使用TC默认配置时,会产生大
量的*.bak文件。因为按照TC默认
设置,修改某个C文件后,将生成
同名的*.bak备份文件,该类文件
的存在没多大作用。解决办法是
把Options->Environment->Backup files设置为off。
优化设置使编译的文件更小
如果你使用的是TC默认的配置话
,那么,你所编译的文件还可以
进一步缩小。方法是把Options->
Complier->Optimization下第3、4
项也设置为on。
使用Windows98自带的Pdos95
当要使用中文系统时,其实不必要
为了使用中文而去下载中文系统。
只要是典型安装,用Win98自带的
Pdos95系统足矣。建立一快捷方
式,命令行只需一句:C:\COMMAN
D.COM /k C:\windows\command\
pdos95.bat,然后还可以将工作目
录设置为TC目录,那么进入中文
系统后只需键入TC即可启动TC。
而且,Pdos95还自带了四种输入
法(国标、区位、双拼、拼音),使
用Shift+Ctrl切换,极为好用。
在Windows下编写C代码
我们一般是在TC界面下编写C代码
的。其实,在Windows下编写C代
码,不仅可以充分利用Windows的
剪切、复制、粘贴功能,而且可以
直接输入汉字。方法是:按住Shift
键在任意一C文件上击鼠标右键,
在弹出菜单中选择"打开方式...",
然后在程序列标中选择NOTEPAD
,同时将"始终使用该程序打开这
种类型的文件"项打钩。按"确定",
以后双击*.c文件即可直接用记事
本编辑。使用该方式,注意打开
用TC编辑过的文件时,先要去掉
文本末尾的C文本结束符(表现为一
实心矩形),否则在TC重新读取文
本时,你的添加工作将会前功尽弃。
使用库函数优化代码之N进制转换
刚学习编程的朋友都遇到过进制转
换的问题,一般的要将一个十进制
的数转化为N进制输出,常规解法
是循环取余的方法。其实这类问题
若是用C的库函数解决则可简化到
极点:
使用char *itoa(int value,char *string,int radix)。
radix值是要转化的进制数,string
是转化后的字符串的存放指针。
譬如10进制转化为3进制输出可以
这样写代码:(TC2.0版)
main()
{
int value;char s[20];
puts("input value:");
scanf("%d",&value);
itoa(value,s,3);/*3进制转换*/
printf("result is:%s\n",s);/*输出结果*/
}
看,进制转换是不是非常简单了?
使用库函数优化代码之字符串操作
学习指针时,一般要练习自己去写
如字符串大小转换,一字符串在另
一字符串中的位置的函数。而在实
际运用中,库函数可以很好地解决
这类问题。例如:
字符串内所有字符转大写:
char *strupr(char *s);
字符串内所有字符转小写:
char *strlwr(char *s);
s2子串第一次出现在s1中的位置:
char *strstr(const char *s1,const char *s2)
然后用查找串指针-查找后返回指
针得到具体位置。如:
main()
{ char s1[10]="c:\\tc\\tc.exe";
int position;
position=(int)s1-(int)strstr(s1,".exe");/*相减得具体位置*/
}
这只是例举的几个小的方面,如果
能灵活运用字符串库函数则诸如目
录提取、扩展名判断和字符串查找
则变得非常简单。
使用位段类型快速进行位分解
一般我们进行位分解使用的是循环
位移再位与运算的方法来进行的,
这种方法会对原数据进行破坏,而
如果要保存原数据则要多占用几个
数据单元。其实有一种更好、更快
的解决办法,那就是:用位段数据
类型进行分解。将struct和union类
型结合使用,即发挥了指针运算的
高效,又保护了原始数据不被破坏
。具体实现方法如下:
typedef union/*8位位段分解类型*/
{char value;
struct
{unsigned b0:1;
unsigned b1:1;
unsigned b2:1;
unsigned b3:1;
unsigned b4:1;
unsigned b5:1;
unsigned b6:1;
unsigned b7:1;
}bits;
}
bits8;
这样,用该结构来保存数据,即可
以用.value来保存和访问数据,又
可以用.b0、.b1...来访问第1、2...
等位,非常方便。读者还可以仿造
该结构定义16位位段分解类型。