C语言参考手册10.docx
- 文档编号:10656969
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:38
- 大小:44.03KB
C语言参考手册10.docx
《C语言参考手册10.docx》由会员分享,可在线阅读,更多相关《C语言参考手册10.docx(38页珍藏版)》请在冰豆网上搜索。
C语言参考手册10
标准c语言包括语言标准和一组标准库。
这些库支持字符和字符串、输入与输出、数学函数、
期与时间转换、动态存储分配和其他特性。
每个库中的功能(类型、宏、函数)在标准头文
|中定义,要使用库中的功能,就要增加一个预处理器命令#include,引用这个库的头文件。
例下列程序段中头文件math.h使程序能够访问余弦函数cos。
#include
doubleX,yj一‘
X=COB(y);口
传统C语言的一些实现不对所有库函数使用头文件,因此有些要由编程人员声明。
对定义为函数的库功能,标准C语言允许实现提供除真正函数以外的同名函数式宏。
宏可能
供简单函数的更快实现方法或可能调用不同名称的函数。
宏会负责求值每个参数表达式一次,。
硒数一样。
如果不管宏是否存在而确定要需要访问函数,则要按下例所示绕过宏。
L!
到
例假设担,心math.h中已有名为COS的宏,则可以用下面两种方法引用基础函数。
两者都
佣宏名后面不能紧跟一个开括号的特点,避免扩展同名函数或宏COS。
#include
doublea,b,(‘p)(double);
p昌&COB;a=(·p)(b);/★calIsfunctioncob,always·/
a=(cos)(b);/+callsfunctionCOS,always‘/
可以取消所有涉及到的宏的定义:
#include
#undefCOB
fa昌C08(b);/★call8functionCOS,alway8★/口
参考章节#include3.4;带参数的宏3.3.2;#under3.3.5
)。
1标准C语言函数
.,
i0.3节汇总标准库函数,对于每一个库头文件都列出了其中定义的函数名及描述这些函数的
节。
如果要查找特定库函数名而不知道它在哪个头文件中,则可以从书后的索引中寻找这个
称。
·
在本书的各个章节中,函数都是以标准C语言形式来描述的。
除了另有说明,否则可以从标
准c语言定义得到传统c语言库函数定义,只要进行如下改写:
1.消除任何使用标准c语言类型的函数,女Ilonglon9与_Complex,或消除标准c语i
新增的函数(C89或C990
2.删除限定符const、restrict与volatile。
删除数组声明符括号内使用的static
3.将类型void★换成char★,将Sl‘Ze—t换成int。
标准C语言中的库功能和头文件有许多特殊之处,主要是为了保护实现的完整性。
1.库名原则上是保留字。
编程人员不能定义与标准库名称同名的外部对象。
2.库头文件或文件名可以内置在实现中,但仍然要被包括之后才能访问其名称。
stdi0.h不一定实际对应于名为“stdi0.h”的#include文件。
幽到3.编程人员可以多次按任意顺序包括库头文件(传统c语言实现中则不然)。
例下面的方法可以保证库头文件不被包括多次:
|’IHeaderBtddef.h★f
#ifndef—STDDEF/★Don。
ttrytoredeclare★/
#define—STDDEFl
typedefintptrdiff—t;
…≯0therdefinitions★|
#endif
保留库标识符’
除了2.6节所列的关键字之外,标准C语言还保留标准库中声明的标识符和标准c语言实
部使用的其他一些标识符。
一个好记的规则是:
不要将标准库中定义的标识符用于任何其
途,不要使用以下划线开头的标识符。
这样就可以避免在不同标准c语言实现之间移动时发
具有外部连接的库标识符(如函数名errno)
具有文件作用域的库标识符和库宏
以下戈Ⅱ线开头加上一个大写字母或加上另一下
划线的标识符
以下划线开头的其他标识符
宿主实现中不能复用于外部连接
如果包括定义这些名称或宏的库头文件,则不能作
为文件作用域名称或宏复用‘
不能用于任何用途,C语言实现常用其作为扩展
不能作为文件作用域名或标志
不能编写标准库函数的自定义版本。
如果把sqrt函数换成自定义的函数,则可能因为
两个同名函数而造成连接错误。
这个限制使c语言实现可以更自由地组装并在内部使用标准
函数。
10.2C++兼容性
、C++语言包括标准C语言运行库,但增加了几个C++特定库。
增加的库都不用以“.h”结
的名称,因此通常不会与C语言库发生冲突o
c++用不同规则调用函数,即一般来说,不能从c语言程序中调用c++函数,但c++提供
第l0章库简介225
。
++中调用c语言函数的方法。
声明c语言函数时有两个要求:
1.函数声明要使用标准c语言原型,因为c++要求原型。
2.外部c语言要显式地标为具有c语言连接,即在c++的存储类extern后面2n_1:
字符串“C”。
例如果在一个c语言函数中调用另一C语言函数,则应声明.
externintf(void);
圣,如果从c++中调用C语言函数,则声明如下:
extern“C“intf(void);
lc++中要声明一组c语言函数,则可以对所有c语言函数采用连接规范:
extern“C“<
doublesqrt(doublex)j
intf(void){
对可能从c语言或c++调用的库编写头文件时,要选择是在头文件中指定C语言连接还是要
++程序在包括头的文件中提供连接声明。
例假设要从C语言或c++调用头文件library.h。
第一种方法是在头文件中包括extern
声明(条件预编译一cpluspluB宏),表示这是个c++程序。
|·Filelibrary.ht|j
#ifdefcplusplus
extern“c。
(
#endif
/·Cdeclarations·/
#ifdefcplusplus
)
#endif
.种方法是用正常c语言声明编写头文件,只是要求c++用户用鲁include命令包装连接声明:
extern“C“(
#include”1ibrary.h“
)口
调用c++出现之前编写的库时,要使用上面第二种方法。
可以嵌套extern”C”{’声明,
}做不会产生问题。
参考章节cplusplus宏3.9.1
3库头文件与名称
j.1assert.h
参见第19章。
aooert
10。
3.2complex.h
参见第23章。
这个头文件是C99@增加的。
Cab8
cab8f
cab81
CaC0日
tacosf
cac08h
tacoshf
CaCOBhl
tacosl
carg
cargf
cargl
casin
casinf
caminh
cabinhf
cabinhl
CaBinl
10.3.3ctype.h
参见第12章。
isalnum
isalpha
ieblank
iscntrl
isdigit
10.3.4errn0.h
参见第11章。
EDOM
、EILSEQ
10.3.5fenv.h
参见第22章。
catan
catanf
catanh
catanhf
catanhl
catanl
CC08
CCOBf
COOBh
cooshf
CCOBhl
ccosl
cexp
cexpf
cexpl
cimag
cimagf
cimagl
isgraph
islower
isprInt
iepunct
isspace
ERANGE
errno
这个头文件是C99中增加的。
FEALLEXCEPT
FEDFLENV
FED工VBYZERO
FEDOWNWARD
FE工NEXACT
FEIN、限LID
FEOVERFLOW
10.3.6rioat.h
参见表5.3。
FETONEAREST
FETOWARDZERO
FEUNDERFLOW
FEUPWARD
feclearexcept
fegetenv
fegetexceptflag
clog
clogf
clogl
complex
—Complex_I
conj
conjf
conJl
cPow
cpowf
cpowl
cProj
cprojf
cprojl
creal
crealf
creall
cBin
c日inf
csinh
csinhf
csinhl
c8inl
csqrt
csqrtf
csqrtl
ctan
ctanf
ctanh
ctanhf
ctanhl
ctanl
cx_LIMITED—RANGE
工
imaginary
—Imaginary_I
isupper
isxdigit
tolower
toupper
fegetround
feh01dexcept
FENVACCESS
fenvt
ferai骞eexcept
fesetenv
fe宣etexceptflag
feeetround
fetestexcept
feupdateenV
fexcept_t
第10章库简,介227
DBLD工G
DBLEPS工LON
DBLMANTD工G
DBLMAX
DBLMAXlOEXP
DBLMAXEXP
DBLM工N
DBLM工Nl0EXP
3.7inttypes.h
DBLM工NEXp
DEC工MALD工G
FLTD工G
FLTEPS工LON
FLTEVALMETHOD
FLTM^_r巾D工G
FLTMAX
FLTMAXlOEXP
FLTMAXEXp
FLTM工N
FLTM工Nl0EXP
FLTM工NEXP
FLTRAD工X
FLTROUNDS
LDBLD工G
LDBLEPS工LON
参见第21章。
这个头文件是C99中增加的。
CNiLEASTⅣpRIoMAXPR工xPTR
imaxabBPRl0ⅣPRIXPTR
imaxdivPRIoPTRSCNdFASTⅣ
imaxdivtPR工uFASTNSCNdL宴ASTⅣ
PR工dFASTNPRIuL肽STⅣSCNd鼢X
PR工dLEASTNpR工uMAXSCNdⅣ
pRIdMAXPRIuNSCNdPTR
PR工dⅣPRIuPTRSCNiFASTⅣ
pR工dpTRPRIxFASTNSCNiMAX
pR工iFASTⅣPR工XFASTⅣSCNiⅣ
PR工iLEASTⅣPRIxLBASTⅣSCNipTR
PR工iMAXpR工XLEASTⅣSCNoFASTⅣ
pRIiNpR工xMAX8CNoLEASTⅣ
PRIiPTRPRIXMAXSCNoM酗C
pRIoFASTNPR工】‘ⅣSCNoN
PR工oLEASTNPR工XNSCNoPTR
3.8is0646.h
参见ll.5节。
这个头文件是C89增补l中增加的。
andbitotnoteq
andeqcomplor
bitandnotoreq
3.9Iimits.h
参见表5—2。
CHARB工T
CHARM^X
CHARM工N
工NTMAX
INTM工N
3.10Iocale.h
参见第20章。
LCALL
LCCOLLATE
LCCTYPE
3.11math.h
参见第17章。
LLONGMAX
LLONGM工N
LONGMAX
LONGM工N
MBLENMAX
LCMONETARY
LCmT帆R工C
LCT工ME
SCHAR姓X
SCHARM工N
SHRTMAX
SHRTM工N
UCHARMAX
LDBLMANTD工G
LDBLMAX
LDBLMAXlOEXp
LDBLMAXEXp
LDBLM工N
LDBLM工Nl0EXP
LDBLM工NEXP
SCNuFASTⅣ
SCNuLEAST.Ⅳ
SCNuMAX
SCNuⅣ
SCNupTR
SCNxFASTⅣ
SCNxLEASTⅣ
SCNxMAX
SCNxN
SCNxPTR
Btrtoimax
8trtoumax
wc8toimax
WC日toumax
Xor
xor.eq
U工NTMAX
Ul-LONGMAX
ULONGMAX
USHRTMAX
Iconv8etlocale
localeconv
NULL
囤
圈
圈
圈
acoBh
aceshf
ac08hl
acesl
aBin
asinf
aBinh
aminhf
a8inhl
asinl
atan
atan2
atan2f
atan21
atanf
atanh
atanhf
atanhl
atanl
cbrt
cbrtf
cbrtl
ceil
ceilf
ceill一
copysign
copysignf
copysignl
C08
c08f
cobh
camhf
iogf
logl
irint
irintf
irintl
1Eoulld
Iroundf
IrourLdl
MATHERREXCEPT
math
orrhandling
MATH—ERRNO
me'df
medff
medfl
NAN
nan
nanf
doublet
erf
erfc
erfcf
erfcl
erff
erfl
exp
exp2
exp2f
exp21
expf
expl
expml
expmlf
expmll
fabB
fabsf
fab91
fdim
fdimf
fdiml
fleart
fleer
floorf
floorl
fma
fmaf
fmal
fmax
fmaxf
fmaxl
nanl
nearbyint
nearbyintf
nearbyintl
nextaftar
nextaftarf
nextafterl
nexttoward
nexttowardf
nexttowardl
pow
powf
pewl
remaindor
remainderf
remainderl
remquo
remquof
fminl
fmod
fmodf
fmodl
FPCONTRACT
FpFASTFMA
FPFASTFMAF
FpFASTFMAL
FP工LOGB0
FP工LOGBNAN
FP工NF工NITE
FPNAN
FPNORMAL
FPSUBNORMAL
FPZERO
fpclassify
frexp
frexpf
frexpl
HUGEVAL
HUGEVALF
HUGEVALL
hypot
hypotf
hypotl
ilogb
ilogbf
ilogbl
工NF工N工TY
i8finite
isgreater
isgreaterequal
remquol
tint
rintf
rintl
faund
roundf
roundl
scalbin
scalbinf
acalblnl
scalbn
scalbnf
scalbnl
signbit
8in
8inf
8inh
Binhf
islessequal
iBle8亭greater
isnan
isnormal
i暑dnorderedldex
p
Idexpf
idexpl
igamma
igammaf
iganmal
1irint.
1irintf
1irintl
11faund
1iroundf
11roundllog
logl0
loglof
logl01
loglp
loglpf
loglpl
l092
l092f
l0921
logb
logbf
logbl
8inhl
Binl
sqrt
sqrtf
sqrtl
tan
tanf
tanh
tanhf
tanhl
tanl
tgma
tgammaf
tgammal
trune
truncf
truncl
第l0章库简介229
1.3.12setjmp.h
参见l9.4节。
J=p—buf
1.3。
13signal.h
参见l9.6节。
rai8e
sig_atomic—t
SIG—DFL
1.3.14stdar9.h
参见ll.4节。
vaarg
va_copy
.3.15stdb001.h
参见ll.3节。
10ngJmp
S工GERR
S工G工GN
S工GABRT
Vaend
vali8t
b001
jooi—true—false—are—defined
.3.16stddef.h,
参见ll.1节。
NULL
offsetof
.etJmp
S工GFpE
SIG工LL
S工GINT
va8tart
falBe
true
ptrdiff——twchar——t
size——t
.3.17stdint.h
参见第21章。
这个头文件是C99中增加的。
工NTFASTⅣMAX
工NTFASTⅣM工N
intfastNt
工NTLEASTNMAX
工NTL皇ASTNM工N
intleastNt
INTl‘AXC
工NTMAXMAX
工NTMAXM工N
intmaxt
3.18stdi0.h
参见第l5章。
BUFS工Z
clearerr
EOF
fclose
feof
ferror
fflush
fgstc
fgetpos
工NTNC
INTN眦
工NTNM工N
intNt
工NTPTRMAX
工NTPTRM工N
intptrt
pTRD工FFMAX
PTRD工FFM工N
S工GATOM工CMAX
fputs
fread
freopen
fscanf
feesk
fsetpos
ftell
fwrite
getc
S工GATOM工CM工N
S工ZEMAX
U工NTFASTNMAX
uintfastNt
U工NTLEASTNM醯
uIntleastNt
U工NTM^XC
U工NTMAXM敞
uIntmaxt
U工NTⅣC
printf
putc
putchar
puts
remove
rename
rewlnd
8canf
SEEKCUR
slgnal
S工GSEGV
S工GTERM
U工NTNMAX
uintNt
U工NTPTRMAX
uintptrt
WCnRMAX
WCltARM工N
W工NTMAX
W工NTM工N
8tderr
Btdin
Btdout
TMPMAX
tmpflle
t柚pnjIm
ungetc
vfprintf
vfscanf
囤
fgets
F工LE
FILENAMEMAX
fopen
FOPENMAX
fpost
fprintf
fputc
10.3.19stdlib.h
参见第16章。
abort
ab8
atexit
atof
atoi
atol
at011
b8@arch
calloc
div
divt
exit
10.3.20strin9.h
参见第13章。
memchr
memcmp
memcpy
memmoVe
memBet
NULL
getehar
gets
工OFBF
工OLBF
工ONBF
L_tJnpnam
NULL
perror
Exit
EX工TFA工LmtE
EX工TSUCCESS
free
getenv
lab8
ldiv
ldivt
11ab8
1ldiv
lldivt
malloc
8izet
8trcat
亭trchr
Btromp
日treoll
8trcPy
10.3.21tgmath.h
参见l7.12节。
这个头文件是C99中增加的。
aC08
ac08h
a目in
a目inh
atan
atan2
atanh
carg
cbrt
ceil
clmag
conJ
copysign
C0目
cobh
cproJ
creal
err
erfc
exP
exp2
expml
fab8
fdim
floor
fma
fmax
fmin
fmod
frexp
8EEKEND
SEEKSET
Betbuf
setvbuf
Bizet
snprintf
sprintf
昌scanf
MBCURMAX
mblen
mbstowc日
mbtowc
NULL
qsort
rand
RANDMAX
realloc
8izet
sEand
Btrtod
日trc8pn
8trerror
8trlen
日trncat
日trncmp
8trncpy
hypot
ilogb
ldexp
lgamIa
11tint
11round
log
loglO
loglp
l092
logb
1tint
1round
nearbyint
nextafter
lrprintf
vscanf
vsnprintf
v日printf
vB日eanf
8trtof
Btrt01
日trt01d
8trt011
8trtoul
8trtoull
gy8tem
wchart
wC8toT,nhs
wctomb
strpbrk
暑trrchr
目trspn
日tr8tr
Btrtok
8trxfm
nexttoward
pow
remainder
remquo
tint
round
scalbin
8calbn
日in
日inh
sqrt
tan
tanh
tgaxma
trunc
参见第18章。
asctime
ciock
clockt
CLOCKSpER
3.3.23wchar.h
参见第24章。
btowc
fgetwc
fgetws
fputwc
fputws
fwlde
fwprintf
fwmcanf
ge
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 参考手册 10