C: A Reference Manual

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

This authoritative reference manual provides a complete description of the C language, the run-time libraries, and a style of C programming that emphasizes correctness, portability, and maintainability. The authors describe the C language more clearly and in more detail than in any other book.

Author(s): Samuel P. Harbison III; Guy L. Steele Jr.
Edition: 5
Publisher: Pearson
Year: 2002

Language: English
Pages: 560

Cover
Contents
List of Table
Prefec
PARRT 1 The C Language
1 Introduction
1.1 The Evolution of C
1.2 Which Dialect of C Should You Use?
1.3 An Overview of C Programming
1.4 Conformance
1.5 Syntax Notation
2 LexicaIElements
2.1 Character Set
2.2 Comments
2.3 Tokens
2.40 perators and Separators
2.5 Identifiers
2.6 Keywords
2.7 Constants
2.8 C++Compatibility
2.90 n Character Sets,Repertoires,and Encodings
2.10 Exercises
3 The C Preprocessor
3.1 Preprocessor Commands
3.2 Preprocessor Lexical Conventions
3.3 Definition and Replacement
3.4 Filelnclusion
3.5 ConditionalCompilation
3.6 Explicit Line Numbering
3.7 PragmaDirective
3.8 Error Directive
3.9 C++Compatibility
3.10 Exercises
4 Declarations
4.10 rganization of Declarations
4.2 Terminology
4.3 Storage Class and Function Specifiers
4.4 Type Specifiers and Qualifiers
4.5 Declarators
4.6 Initializers
4.7 Implicit Declarations
4.8 ExternalNames
4.9 C++Compatibility
4.10 Exercises
5 Types
5.1 IntegerTypes
5.2 Floating-PointTypes
5.3 PointerTypes
5.4 Array Types
5.5 Enumerated Types
5.6 StructureTypes
5.7 Union Types
5.8 Function Types
5.9 The Void Type
5.10 TypedefNames
5.11 Type Compatibility
5.12 Type Names and Abstract Declarators
5.13 C++Compatibility
5.14 Exercises
6 Converslons and Representations
6.1 Representations
6.2 Conversions
6.3 The Usual Conversions
6.4 C++Compatibility
6.5 Exercises
7 Expressions
7.10 bjects,Lvalues,and Designators
7.2 Expressions and Precedence
7.3 Primary Expressions
7.4 Postfix Expressions
7.5 UnaryExpressions
7.6 Binary Operator Expressions
7.7 Logical Operator Expressions
7.8 ConditionalExpressions
7.9 Assignment Expressions
7.10 SequentialExpressions
7.11 ConstantExpressions
7.120 rder of Evaluation
7.13 Discarded Values
7.140 ptimization of Memory Accesses
7.15 C++Compatibilitv
7.16 Exercises
8 Statements
8.1 General Syntactic Rules for Statements
8.2 Expression Statements
8.3 Labeled Statements
8.4 Compound Statements
8.5 ConditionalStatements
8.6 Iterative Statements
8.7 Switch Statements
8.8 Break and Continue Statements
8.9 Return Statements
8.10 Goto Statements
8.11 Null Statements
8.12 C++Compatibility
8.13 Exercises
9 Functions
9.1 Function Definitions
9.2 Function Prototypes
9.3 Formal Parameter Declarations
9.4 Adjustments to Parameter Types
9.5 Parameter-Passing Conventions
9.6 Agreement of Parameters
9.7 Function Return Types
9.8 Agreement of Return Types
9.9 The Main Program
9.10 Inline Functions
9.11 C++Compatibility
9.12 Exercises
PART 2 The C Libraries
10 Introduction to the Libraries
10.1 Standard C Facilities
10.2 C++Compatibility
10.3 Library Headers and Names
11 Standard Language Additions
11.1 NULL,ptrdiff_t,size_t,offsetof
11.2 EDOM,ERANGE,EILSEQ,errno,strerror,perror
11.3 bool,false,true
11.4 va_list,va_start,va_arg,va_end
11.5 Standard C Operator Macros
12 Character Processing
12.1 isalnum,isalpha,iscntrl,iswalnum,iswalpha,iswcntrl
12.2 iscsym,iscsymf
12.3 isdigit,isodigit,isxdigit,iswdigit,iswxdigit
12.4 isgraph,isprint,ispunct,iswgraph,iswprint,iswpunct
12.5 islower,isupper,iswlower,iswupper
12.6 isblank,isspace,iswhite,iswspace
12.7 toascii
12.8 toint
12.9 tolower,toupper,towlower,towupper
12.10 wctype_t,wctype,iswctype
12.11 wctrans_t,wctrans
13 String Processing
13.1 strcat,strncat,wcscat,wcsncat
13.2 strcmp,strncmp,wcscmp,wcsncmp
13.3 strcpy,strncpy,wcscpy,wcsncpy
13.4 strlen,wcslen
13.5 strchr,strrchr,wcschr,wcsrchr
13.6 strspn,strcspn,strpbrk,strrpbrk,wcsspn,wcscspn,wcspbrk
13.7 strstr,strtok,wcsstr,wcstok
13.8 strtod,strtof,strtold,strtol,strtoll,strtoul,strtoull
13.9 atof,atoi,atol,atoll
13.10 strcoll,strxfrm,wcscoll,wcsxfrm
14 Memory Functions
14.1 memchr,wmemchr
14.2 memcmp,wmemcmp
14.3 memcpy,memccpy,memmove,wmemcpy,wmemmove
14.4 memset,wmemset
15 Input/Output Facilities
15.1 FILE,EOF,wchar_t,wint_t,WEOF
15.2 fopen,fclose,fflush,freopen,fwide
15.3 setbuf,setvbuf
15.4 stdin,stdout,stderr
15.5 fseek,ftell,rewind,fgetpos,fsetpos
15.6 fgetc,fgetwc,getc,getwc,getchar,getwchar,ungetc,ungetwc
15.7 fgets,fgetws,gets
15.8 fscanf,fwscanf,scanf,wscanf,sscanf,swscanf
15.9 fputc,fputwc,putc,putwc,putchar,putwchar
15.10 fputs,fputws,puts
15.11 fprintf,printf,sprintf,snprintf,fwprintf,wprintf,swprintf
15.12 vfprintf,vfwprintf,vprintf,vwprintf,vsprintf,vswprintf,vfscanf,vfwscanf,vscanf,vwscanf,vsscanf,vswscanf
15.13 fread,fwrite
15.14 feof,ferror,clearerr
15.15 remove,rename
15.16 tmpfile,tmpnam,mktemp
16 GeneraIUtilities
16.1 malloc,calloc,mlalloc,clalloc,free,cfree
16.2 rand,srand,RAND_MAX
16.3 atof,atoi,atol,atoll
16.4 strtod,strtof,strtold,strtol,strtoll,strtoul,strtoull
16.5 abort,atexit,exit,_Exit,EXIT_FAILURE,EXIT_SUCCESS
16.6 getenv
16.7 system
16.8 bsearch,qsort
16.9 abs,labs,llabs,div,ldiv,lldiv
16.10 mblen,mbtowc,wctomb
16.11 mbstowcs,wcstombs
17 MathematicaIFunctions
17.1 abs,labs,llabs,div,ldiv,lldiv
17.2 fabs
17.3 ceil,floor,lrint,llrint,lround,llround,nearbyint,round,rint,trunc
17.4 fmod,remainder,remqu0
17.5 frexp,ldexp,modf,scalbn
17.6 exp,exp2,expml,ilogb,log,logl0,loglp,log2,logb
17.7 cbrt,fma,hypot,pow,sqrt
17.8 rand,srand,RAND_MAX
17.9 cos,sin,tan,cosh,sinh,tanh
17.10 acos,asin,atan,atan2,acosh,asinh,atanh
17.11 fdim,fmax,fmin
17.12 Type-Generic Macros
17.13 erf,erfc,lgamma,tgamma
17.14 fpclassify,isfinite,isinf,isnan,isnormal,signbit
17.15 copysign,nan,nextafter,nexttoward
17.16 isgreater,isgreaterequal,isless,islessequal,islessgreater,isunordered
18 Time and Date Functions
18.1 clock,clock_t,CLOCKS_PER_SEC,times
18.2 time,time_t
18.3 asctime,ctime
18.4 gmtime,localtime,mktime
18.5 difftime
18.6 strftime,wcsftime
19 ControIFunctions
19.1 assert,NDEBUG
19.2 system,exec
19.3 exit,abort
19.4 setjmp,longjmp,jmp_buf
19.5 atexit
19.6 signal,raise,gsignal,ssignal,psignal
19.7 sleep,alarm
20 Locale
20.1 setlocale
20.2 localeconv
21 Extended Integer Types
21.1 GeneralRules
21.2 Exact-SizeIntegerTypes
21.3 Least-Size Types of a Minimum Width
21.4 Fast Types of a Minimum Width
21.5 Pointer-Size and Maximum-Sizelnteger Types
21.6 Ranges of ptrdiff_t,size_t,wchar_t,wint_t,and sig_atomic_t
21.7 imaxabs,imaxdiv,imaxdiv_t
21.8 strtoimax,strtouimax
21.9 wcstoimax,wcstoumax
22 Floating-Point Environment
22.10 verview
22.2 Floating-PointEnvironment
22.3 Floating-PointExceptions
22.4 Floating-Point Rounding Modes
23 Complex Arithmetic
23.1 Complex Library Conventions
23.2 complex,_Complex_l,imaginary,_Imaginary_l
23.3 CX_LIMITED_RANGE
23.4 cacos,casin,catan,ccos,csin,ctan
23.5 cacosh,casinh,catanh,ccosh,csinh,ctanh
23.6 cexp,clog,cabs,cpow,csqrt
23.7 carg,cimag,creal,conj,cproj
24 Wide and Multibyte Facilities
24.1 Basic Types and Macros
24.2 Conversions Between Wide and Multibyte Characters
24.3 Conversions Between Wide and Multibyte Strings
24.4 Conversions to Arithmetic Types
24.5 Input and Output Functions
24.6 String Functions
24.7 Date and Time Conversions
24.8 Wide-Character Classification and Mapping Functions
A The ASCII Character Set
B Syntax
C Answers to the Exercises
Index