C语言编程技巧.docx

上传人:b****1 文档编号:2469036 上传时间:2023-05-03 格式:DOCX 页数:41 大小:40.41KB
下载 相关 举报
C语言编程技巧.docx_第1页
第1页 / 共41页
C语言编程技巧.docx_第2页
第2页 / 共41页
C语言编程技巧.docx_第3页
第3页 / 共41页
C语言编程技巧.docx_第4页
第4页 / 共41页
C语言编程技巧.docx_第5页
第5页 / 共41页
C语言编程技巧.docx_第6页
第6页 / 共41页
C语言编程技巧.docx_第7页
第7页 / 共41页
C语言编程技巧.docx_第8页
第8页 / 共41页
C语言编程技巧.docx_第9页
第9页 / 共41页
C语言编程技巧.docx_第10页
第10页 / 共41页
C语言编程技巧.docx_第11页
第11页 / 共41页
C语言编程技巧.docx_第12页
第12页 / 共41页
C语言编程技巧.docx_第13页
第13页 / 共41页
C语言编程技巧.docx_第14页
第14页 / 共41页
C语言编程技巧.docx_第15页
第15页 / 共41页
C语言编程技巧.docx_第16页
第16页 / 共41页
C语言编程技巧.docx_第17页
第17页 / 共41页
C语言编程技巧.docx_第18页
第18页 / 共41页
C语言编程技巧.docx_第19页
第19页 / 共41页
C语言编程技巧.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言编程技巧.docx

《C语言编程技巧.docx》由会员分享,可在线阅读,更多相关《C语言编程技巧.docx(41页珍藏版)》请在冰点文库上搜索。

C语言编程技巧.docx

C语言编程技巧

C语言编程常见问题解答之常用函数的包含文件

(1)

--------------------------------------------------------------------------------

函数包含类别功能

_atoldmath.h数学子程序把字符串转换为浮点数

_beginthreadprocess.h进程控制子程序启动执行一个新线程

_bios_diskbios.h接口子程序输出BIOS磁盘驱动器服务

_bios_equiplistbios.h接口子程序检查设备

_bios_keybrdbios.h接口子程序直接使用BIOS的键盘接口

_bios_memsizebiosd.h存储子程序返回内存大小

_bios_printerbios.h接口子程序直接调用BIOS服务进行打印机I/O

_bios_timeofdaybios.h时间和日期子程序读取或设置BIOS时钟

_biosserialcombios.h接口子程序进行串行I/O

_c_exitprocess.h进程控制子程序不终止程序执行如同_exit的清除

_cexitprocess.h进程控制子程序不终止程序执行如同_exit的清除

_chdrivedirect.h目录控制子程序设置当前驱动器

_chian_intrdos.h接口子程序

_chmodeio.h输入输出子程序改变文件的存取权限

_clear87float.h数学子程序清除浮点状态字

_closeio.h输入输出子程序关闭文件(3。

1)以下版本

_control87float.h数学子程序处理浮点控制字

_creatio.h输入输出子程序创建一个新文件或重写一个已存在的文件

_disabledos.h接口子程序屏蔽中断

_dos_allocmemdos.h存储子程序

_dos_closedos.h输入输出子程序关闭一个文件

_dos_craetedos.h输入输出子程序创建一个新文件或重写一个已存在的文件

_dos_createnewdos.h输入输出子程序创建一个新文件

_dos_findfirstdos.h目录控制子程序搜索一个磁盘目录

_dos_findnextdos.h目录控制子程序继续_dos_findfirst的搜索

_dos_freememdos.h存储子程序

_dos_getdatedos.h时间和日期子程序取得和设置系统日期

_dos_getdiskfredos.h目录控制子程序取得磁盘空闲空间

_dos_getdrivedos.h目录控制子程序取得和设置当前驱动器号

_dos_getfileattdos.h输入输出子程序取得和设置文件属性

_dos_getftimedos.h输入输出子程序取得和设置文件日期和时间

_dos_gettimedos.h时间和日期子程序取得和设置系统时间

_dos_getvectdos.h接口子程序取得中断向量

_dos_keepdos.h接口子程序

_dos_opendos.h输入输出子程序打开一个文件用于读和写

_dos_readdos.h输入输出子程序从文件读

_dos_setblockdos.h存储子程序

_dos_setdatedos.h时间和日期子程序设置系统日期

_dos_setdrivedos.h目录控制子程序设置当前驱动器号

_dos_setfileattdos.h输入输出子程序设置文件属性

_dos_setfitmedos.h输入输出子程序设置文件时间

_dos_settimedos.h时间和日期子程序设置系统时间

_dos_setvectdos.h接口子程序设置中断向量

_dos_writedos.h输入输出子程序写向文件

_enabledos.h接口子程序开硬件中断

_exitprocess.h进程控制子程序终止程序

_fpresentfloat.h数学子程序重新初始化浮点数学包

_fsopenstdio.h输入输出子程序

_fullpathstdlib.h目录控制子程序把相对路径名转换为绝对路径名

_getdcwddirect.h目录控制子程序取得指定驱动器的当前目录

_getdrivedirect.h目录控制子程序取得当前驱动器号

_graphfreememgraphics.h图形子程序可修改的图形内存释放函数

_graphgetmemgraphics.h图形子程序可修改的图形内存分配函数

_harderrdos.h接口子程序建立一个硬件错误处理程序

_hardresumedos.h接口子程序硬件错误处理函数

_hardretndos.h接口子程序硬件错误处理函数

_heapaddalloc.h添加一个块到堆上

_heapminmalloc.h释放无用的堆区域

_hea视频教程'>psetmalloc.h用一个常量值填充堆上的自由块

_initEasyWinio.h初始化Easewindows

_lrotlstdlib.h数学子程序将无符号长整型数向左循环移位

_lrotrstdlib.h数学子程序将无符号长整型数向右循环移位

_makeepathstdlib.h目录控制子程序生成一个路径

_matherrlmath.h诊断子程序用户可修改的数学错误处理程序

_matherrlmath.h数学子程序用户可修改的数学错误处理程序

_openio.h输入输出子程序打开一个文件进行读和写

_OvrInitEmsdos.h初始化复盖治理程序用于交换EMS内存

_OvrInitExtdos.h初始化复盖治理程序用于交换EXT内存

_pclosestdio.h等待一个管道命令结束

_popenstdio.h创建一个子命令处理程序管道

_readio.h输入输出子程序读文件(3。

1以下版本)

_rotlstdlib.h嵌入子程序将一个无符号整数左循环移位

_rotlstdlib.h数学子程序把一个无符号整数左循环移位

_rotrstdlib.h嵌入子程序将一个无符号整数向左循环移位

_searchstrstdlib.h为某文件查找某些目录

_setcursortypegraphics.h图形子程序选择光标类型

_setcursortypeconio.h输入输出子程序选择光标类型

_setcursortypeconio.h文本窗口显示子程选择光标类型

_splitpathstdlib.h目录控制子程序将一个全限定的路径名分解各个成份

_status87float.h数学子程序取浮点状态

_strdatestdlib.h转换子程序把当前日期转换成字符串

_strerrorstring.hstdio输入输出子程序建立用户定义的错误信息

_strtimestdlib.h转换子程序转换当前日期为字符串

_strtoldstdlib.h转换子程序

_strtoldstdlib.h数学子程序

_tolowerctype.h转换子程序把字符转换成小写字母

_writeio.h输入输出子程序写文件

abortprocess.h进程控制子程序异常终止一进程

absstdlib.hcompl数学子程序返回整数的绝对值

abslmath.h数学子程序计算复数的模

absreaddos.h接口子程序读磁盘的绝对扇区

abswritedos.h接口子程序写磁盘的绝对扇区

accessio.h输入输出子程序确定文件的存取权限

acosmath.hcomplex数学子程序计算反余弦值

acoslmath.h数学子程序计算反余弦值

allocamalloc.h存储子程序分配临时堆栈空间

allocmdos.h存储子程序分配DOS内存

arcgraphics.h图形子程序画园弧

argcomplex.h数学子程序求复平面中一个复数的弧度

asctimetime.h时间和日期子程序转换日期和时间为对应的ASCII码

asinmath.hcomplex数学子程序反正弦函数

asinlmath.h数学子程序反正弦函数

assertassert.h诊断子程序条件终止函数

atan2math.hcomplex数学子程序计算y/x的反正切值

atan2lmath.h数学子程序计算y/x的反正切值

atofstdlib.h转换子程序将字符串转换为浮点数

atofmath.hstdlib.数学子程序将字符串转换成浮点数

atoistdlib.h转换子程序将字符串转换为整数

atoistdlib.h数学子程序把字符串转换成整型数

atolstdlib.h转换子程序将字衔串转换成长整型数

atolstdlib.h数学子程序抬字符串转换为长整型

bargraphics.h图形子程序画二维条形图

bar3dgraphics.h图形子程序画一个三维条形图

bcdbcd.h数学子程序把一个数转换为相对应的BCD码

bdosdos.h接口子程序DOS系统调用

bdosptrdos.h接口子程序DOS系统调用

bioscombios.h接口子程序I/O通讯

biosdiskbios.h接口子程序调用BIOS磁盘驱动程序

bioseqiplistbios.h接口子程序检查设备

bioskeybios.h接口子程序调用BIOS的键盘接口

biosmemorybios.h接口子程序返加内存的大小

biosprintfbios.h接口子程序调用BIOS的打印I/O接口

biostimebios.h接口子程序读取或设置BIOS时钟

brkalloc.h存储子程序改变数据段内存分配

cabsmath.h数学子程序计算复数的模

callocalloc.hstdlib存储子程序分配内存

ceilmath.h数学子程序舍入

ceillmath.h数学子程序舍入

cgetsconio.h输入输出子程序读字符串

chdirdir.h目录控制子程序改变当前目录

chmodio.h输入输出子程序改变文件存取权限

chsizeio.h输入输出子程序修改文件长度

circlegraphics.h图形子程序画园

cleardevicegraphics.h图形子程序清图形屏幕

clearerrio.h输入输出子程序复位错误标志

clearviewportgraphics.h图形子程序清除当前图形窗口

closeio.h输入输出子程序关闭文件

closedirdirect.h目录控制子程序关闭目录流

closegraphgraphics.h图形子程序关闭图形系统

clreolconio.h文本窗口显示子程清除从当前光标位置到行尾的字符

clrscrconio.h文本窗口显示子程清除文本窗口,并把光标放在左上角

complexcomplex.h数学子程序创建复数

conjcomplex.h数学子程序求复数的共轭复数

coreleftalloc.hstdlib存储子程序返顺未使用的内存大小

cosmath.hcomplex数学子程序计算余弦值

coshmath.hcomplex数学子程序计算双曲余弦值

coshlmath.h数学子程序计算双曲余弦值

coslmath.h数学子程序计算余弦值

countrydos.h接口子程序读取与特定国家有关的格式

cprintfconio.h输入输出子程序格式化并输出数据到屏幕

cputsconio.h输入输出子程序输出一字符串到屏幕

creatio.h输入输出子程序创建一个新文件或重写一个已存在的文件

creatnewio.h输入输出子程序创建新文件

creattempio.h输入输出子程序创建一个文件名唯一的文件

cscanfconio.h输入输出子程序从控制台执行格式化输入

ctimetime.h时间和日期子程序把日期和时间转化为对应的字符串

ctrlbrkdos.h接口子程序设置CTRL-BREAK处理程序

delaydos.h杂类子程序暂停DOS

dellineconio.h文本窗口显示子程在文本窗口中删去一行

detectgraphgraphics.h图形子程序检测硬件并确定使用何种图形驱运程序和图形

difftimetime.h时间和日期子程序计算二个时刻的时间差

disabledos.h接口子程序屏蔽中断

css.shtml'target='_blank'title='div视频教程'>divmath.h数学子程序将二个整数相除,返回商和余数

dosexterrdos.h接口子程序获取扩展错误信息

dostounixdos.h时间和日期子程序把日期和时间转换成UNIX格式

drawpolygraphics.h图形子程序绘制多边形

dupio.h输入输出子程序复制文件句柄

dup2io.h输入输出子程序将一个文件句柄复制到一个已有的文件句柄

ecvtstdlib.h转换子程序把浮点数转换成字符串

ecvtstdlib.h数学子程序把浮点数转换为字符串

elipsegraphics.h图形子程序绘制椭园

enabledos.h接口子程序开硬件中断

eofio.h输入输出子程序检测文件是否结束

execleprocess.h进程控制子程序装入并运行其它程序

execlpprocess.h进程控制子程序装入并运行其它程序

execlpeprocess.h进程控制子程序装入并运行其它程序

exectprocess.h进程控制子程序

execvprocess.h进程控制子程序装入并运行其它程序

本文章来自21视频教程网

C语言编程常见问题解答之常用函数的包含文件

(1)_C语言程序设计教程原文链接:

C语言编程常见问题解答之杂项(Miscellaneous)

(2)

--------------------------------------------------------------------------------

请参见:

20.12怎样把数据从一个程序传递到另一个程序?

20.17可以使热启动(Ctrl+Alt+Delete)失效吗?

21.10什么是动态连接?

20.9为什么要使用静态变量

静态变量作为一个局部变量是很合适的,它在函数退出后不会失去其本身的值。

例如,有一个要被调用很多次的函数,它的一部分功能就是计算自己被调用的次数。

你不能用一个简单的局部变量来实现这部分功能,因为每次进入该函数时,这个变量都没有被初始化。

假如把这个计数变量说明为静态的,那么它就会象一个全局变量那样保留自己的当前值。

那么为什么不直接使用一个全局变量呢?

你可以使用一个全局变量,而且这样做没有错误。

问题是使用了大量全局变量的程序维护起来很麻烦,尤其是有许多函数都各自访问一个全局变量的程序。

再说一遍,这样做没有错误,这只是一个程序设计和可读性是否好的问题。

假如你把这样的变量说明为静态的,你就可以提醒自己(或者其它可能读你的程序的人)它是局部变量,但要象全局变量那样被处理(保留自己的值)。

假如你把它说明为全局的,那么读这个程序的人一定会认为有很多地方要引用它,尽管实际上并不是这样。

总而言之,当你需要一个能保持自己的值的局部变量时,使用静态变量是一种好的编程习惯。

请参见:

2.17可以头文件中说明static变量吗?

20.10怎样在一个程序后面运行另一个程序?

显然,在一个程序后面运行另一个程序的最简单的办法是把它们依次列入一个批处理文件中,在执行该批处理文件时,其中所列的程序就会依次运行。

然而,这是一种人们已经知道的办法。

在c或DOS中,都没有一种特定的方法来完成“在一个程序结束后运行另一个程序”这样一种函数调用。

然而,c提供了两组函数,它们答应一个程序随时可以运行另一个程序,而后者的运行将结束前者的运行。

假如你将这样的一个函数调用放到第一个程序的末尾,你就能达到上述目的。

C所提供的这两组函数实际上是由exec()和spawn()所代表的两个函数族,其中的每一个函数都具有一种区别于同族其它函数的功能。

exec()函数族包括这样一些成员:

execl(),execle(),execlp(),execlpe(),execv(),execve(),execvp()和execvpe()。

下面列出了这此函数名中的e,l,p和v等后缀的含义:

e明确地把一个指向环境参数的指针数组传递给子进程

l把命令参数逐个传递给要执行的程序

p通过环境变量PATH找到要执行的文件

v把命令行参数以一个指针数组的形式传递给要执行的程序

在程序中选用哪一个函数完全取决于你以及要执行的程序的需要。

下例中的程序调用了其参数由命令行指定的另一个程序:

#include

#include

char*envString[]={/*environmentfortheapp*/

"COMMVECTOR=0x63",/*communicationsvector*/

"PARENT=LAUNCH.EXE",/*nameofthisapp*/

"EXEC=EDIT.COM",/*nameofapptoexec*/

NULL};/*mustbeNULL-terminated*/

void

main(intargc,char**argv)

{

/*Calltheonewithvariableargumetsandanenviroffment*/

_execvpe("EDIT.COM",argv,envString);

printf("Ifyoucanreadthissentence,theexecdidn'thappen!

\n");

}

上面这个短小的例子调用_execvpe()来执行DOS的文件编辑器EDIT.COM,EDIT程序的参数来自该例的命令行。

在调用execvpe()函数后,上例中的程序就结束了;当EDIT程序退出时,你将返回到DOS提示符。

假如printf()语句的打印内容显示在屏幕上,则说明_execvpe()函数调用出了问题,因为假如它调用成功,就不会有上述结果。

注重,上例所提供的EDIT.COM的环境变量是没有任何意义的,然而,假如上例要执行一个需要环境变量的程序,那么所提供的环境变量就能供该程序使用了。

用spawn()函数同样可以完成上例所做的工作。

spawn()函数族包括这样一些成员:

spawnl(),spawnle()。

spawnlp(),spawnlpe(),spawnv(),spawnve(),spawnvp()和spawnvpe()。

这些函数名中的e,l,p和v等后缀的含义与exec()族函数名中的相同。

实际上,spawn()函数族与exec()函数族基本相同,只不过有一点小小的差别——spawn()函数既可以在结束原来的程序后启动另一个程序,也可以启动另一个程序并在该程序结束后返回到原来的程序。

spawn()函数的参数与exec()函数的基本相同,只不过需要增加一个参数一你必须用_P_OVERLAY(结束原来的程序)或_P_WAIT(结束后返回到原来的程序)作为spawn()函数的第一个参数。

下例用spawn()函数完成了与前面的例子相同的工作:

#include

#include

char*envString[]={/*environmentfortheapp*/

"COMMVECTOR=0x63",/*communicationsvector*/

"PARENT=LAUNCH.EXE",/*nameofthisapp*/

"EXEC=EDIT.COM",/*nameofapptoexec*/

NULL};/*mustbeNULL-terminated*/

void

main(intargc,char**argv)

{

/*Calltheonewithvariableargumetsandanenvironment*/

_spawnvpe(_P_OVERLAY,"EDIT.COM",argv,envString);

printf("Ifyoucanreadthissentence,theexecdidn'thappen!

\n");

}

这里唯一的区别是"exec”变为"spawn",并且增加了模式(mode)参数。

spawn()函数有覆盖和等待两种相对立的功能,它使你可以在spawn()运行期间做出是等待还是离开的决定。

实现上,P_WAIT参数回答了下一个问题。

请参见:

20.11怎样在一个程序执行期间运行另一个程序?

20.11怎样在一个程序执行期间运行另一个程序?

正如你在20.10的例子中看到的那样,spawn()函数族答应在一个程序中启动另一个程序,并在后者结束后返回到前者之中。

有关spawn()函数的背景知识和例子(你只需把其中的_P_OVERLAY改为_P_WAIT)请参见20.10。

然而,还有另外一种方法可以完成这项工作,即使用system()函数。

system()函数与exec()或spawn()函数相似,但也不有同之处。

除了挂起(而不是结束)当前程序去执行新程序外,system()还要启动COMMAND.COM命令翻译程序(或者其它任何运行在你的计算机上的命令翻译程序)。

假如它找不到COMMAND.COM或类似的程序,那么它就不会去执行所要求的程序(这一点与exec()或spawn()函数不同)。

下例是调用EDIT.COM打开一个文件的另一个程序版本,其中的文件名也来自该例的命令行:

#include

#include

#inclued

charargStr[255];

void

main(intargc,char*

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2