SlideShare uma empresa Scribd logo
1 de 2
Baixar para ler offline
C Reference Card (ANSI)                                           Constants                                                           Flow of Control
                                                                        long (suffix)                                 L or l                  statement terminator                        ;
Program Structure/Functions                                             float (suffix)                                 F or f                  block delimeters                            { }
type fnc(type 1 ,. . . )               function declarations            exponential form                            e                       exit from switch, while, do, for            break
type name                              external variable declarations   octal (prefix zero)                          0                       next iteration of while, do, for            continue
main() {                               main routine                     hexadecimal (prefix zero-ex)                 0x or 0X                go to                                       goto label
  declarations                         local variable declarations      character constant (char, octal, hex)     'a', 'ooo', 'xhh'       label                                       label :
  statements                                                            newline, cr, tab, backspace                 n, r, t, b          return value from function                  return expr
}                                                                       special characters                          , ?, ', "          Flow Constructions
type fnc(arg 1 ,. . . ) {              function definition               string constant (ends with '0')            "abc. . . de"           if statement              if (expr ) statement
  declarations                         local variable declarations                                                                                                    else if (expr ) statement
  statements                                                            Pointers, Arrays & Structures                                                                 else statement
  return value;                                                         declare pointer to type                    type *name               while statement           while (expr )
                                                                                                                                                                         statement
}                                                                       declare function returning pointer to type type *f()
                                       comments                                                                                             for statement             for (expr 1 ; expr 2 ; expr 3 )
/* */                                                                   declare pointer to function returning type type (*pf)()                                          statement
main(int argc, char *argv[])           main with args                   generic pointer type                       void *                   do statement              do     statement
exit(arg )                             terminate execution              null pointer                               NULL                                               while(expr );
                                                                        object pointed to by pointer               *pointer
C Preprocessor                                                          address of object name                     &name
                                                                                                                                            switch statement          switch (expr ) {
                                                                                                                                                                          case const 1 : statement 1 break;
include library file                  #include <filename>                 array                                       name[dim ]                                            case const 2 : statement 2 break;
include user file                     #include "filename"                 multi-dim array                         name[dim 1 ][dim 2 ]. . .                                 default: statement
replacement text                      #define name text                 Structures                                                                                    }
replacement macro                #define name(var ) text                     struct tag {            structure template
     Example. #define max(A,B) ((A)>(B) ? (A) : (B))                            declarations         declaration of members                 ANSI Standard Libraries
undefine                               #undef name                            };                                                             <assert.h>    <ctype.h>    <errno.h>     <float.h>     <limits.h>
quoted string in replace              #                                 create structure                           struct tag name          <locale.h>    <math.h>     <setjmp.h>    <signal.h>    <stdarg.h>
concatenate args and rescan           ##                                member of structure from template          name.member              <stddef.h>    <stdio.h>    <stdlib.h>    <string.h>    <time.h>
conditional execution         #if, #else, #elif, #endif                 member of pointed to structure             pointer -> member
is name defined, not defined?           #ifdef, #ifndef                        Example. (*p).x and p->x are the same
                                                                                                                                            Character Class Tests <ctype.h>
name defined?                          defined(name )                    single value, multiple type structure      union                    alphanumeric?                                isalnum(c)
line continuation char                                                 bit field with b bits                       member : b               alphabetic?                                  isalpha(c)
                                                                                                                                            control character?                           iscntrl(c)
Data Types/Declarations                                                 Operators (grouped by precedence)                                   decimal digit?                               isdigit(c)
character (1 byte)                           char                       structure member operator                    name.member            printing character (not incl space)?         isgraph(c)
integer                                      int                        structure pointer                            pointer ->member       lower case letter?                           islower(c)
float (single precision)                      float                                                                                          printing character (incl space)?             isprint(c)
                                                                        increment, decrement                         ++, --
float (double precision)                      double                                                                                         printing char except space, letter, digit?   ispunct(c)
                                                                        plus, minus, logical not, bitwise not        +, -, !, ~
short (16 bit integer)                       short                                                                                          space, formfeed, newline, cr, tab, vtab?     isspace(c)
                                                                        indirection via pointer, address of object   *pointer , &name
long (32 bit integer)                        long                                                                                           upper case letter?                           isupper(c)
                                                                        cast expression to type                      (type) expr
positive and negative                        signed                                                                                         hexadecimal digit?                           isxdigit(c)
                                                                        size of an object                            sizeof
only positive                                unsigned                                                                                       convert to lower case?                       tolower(c)
pointer to int, float,. . .                  *int, *float,. . .         multiply, divide, modulus (remainder)        *, /, %                convert to upper case?                       toupper(c)
enumeration constant                         enum                       add, subtract                                +, -
constant (unchanging) value                  const                                                                                          String Operations <string.h>
declare external variable                    extern                     left, right shift [bit ops]                  <<, >>                    s,t are strings, cs,ct are constant strings
register variable                            register                   comparisons                                  >, >=, <, <=           length of s                                  strlen(s)
local to source file                          static                     comparisons                                  ==, !=                 copy ct to s                                 strcpy(s,ct)
no value                                     void                                                                                                up to n chars                           strncpy(s,ct,n)
                                                                        bitwise and                                  &
structure                                    struct                                                                                         concatenate ct after s                       strcat(s,ct)
create name by data type                     typedef typename           bitwise exclusive or                         ^
                                                                                                                                                 up to n chars                           strncat(s,ct,n)
size of an object (type is size_t)           sizeof object              bitwise or (incl)                            |                      compare cs to ct                             strcmp(cs,ct)
size of a data type (type is size_t)         sizeof(type name)          logical and                                  &&                          only first n chars                       strncmp(cs,ct,n)
                                                                                                                                            pointer to first c in cs                      strchr(cs,c)
Initialization                                                          logical or                                   ||
                                                                                                                                            pointer to last c in cs                      strrchr(cs,c)
initialize variable                         type name=value             conditional expression                   expr 1 ? expr 2 : expr 3
                                                                                                                                            copy n chars from ct to s                    memcpy(s,ct,n)
initialize array                     type name[]={value 1 ,. . . }      assignment operators                         +=, -=, *=, . . .      copy n chars from ct to s (may overlap) memmove(s,ct,n)
initialize char string                   char name[]="string "          expression evaluation separator              ,                      compare n chars of cs with ct                memcmp(cs,ct,n)
                                                                                                                                            pointer to first c in first n chars of cs      memchr(cs,c,n)
                                                                        Unary operators, conditional expression and assignment oper-
                                                                                                                                            put c into first n chars of cs                memset(s,c,n)
                                                                        ators group right to left; all others group left to right.

        c 1999 Joseph H. Silverman Permissions on back. v1.3
                                 1                                                                      2                                                                   3
C Reference Card (ANSI)                                         Standard Utility Functions <stdlib.h>                             Integer Type Limits <limits.h>
                                                                      absolute value of int n                   abs(n)                  The numbers given in parentheses are typical values for the
Input/Output <stdio.h>                                                absolute value of long n                  labs(n)                 constants on a 32-bit Unix system.
                                                                      quotient and remainder of ints n,d        div(n,d)                   CHAR_BIT bits in char                                  (8)
Standard I/O
                                                                           retursn structure with div_t.quot and div_t.rem                 CHAR_MAX max value of char                   (127 or 255)
standard input stream                       stdin
                                                                      quotient and remainder of longs n,d       ldiv(n,d)                  CHAR_MIN min value of char                    (−128 or 0)
standard output stream                      stdout
                                                                           returns structure with ldiv_t.quot and ldiv_t.rem                INT_MAX max value of int                       (+32,767)
standard error stream                       stderr
                                                                      pseudo-random integer [0,RAND_MAX]        rand()                      INT_MIN min value of int                       (−32,768)
end of file                                  EOF
                                                                      set random seed to n                      srand(n)                   LONG_MAX max value of long              (+2,147,483,647)
get a character                             getchar()
                                                                      terminate program execution               exit(status)               LONG_MIN min value of long              (−2,147,483,648)
print a character                           putchar(chr )
                                                                      pass string s to system for execution     system(s)                 SCHAR_MAX max value of signed char                  (+127)
print formatted data                printf("format ",arg 1 ,. . . )
                                                                      Conversions                                                         SCHAR_MIN min value of signed char                  (−128)
print to string s               sprintf(s,"format ",arg 1 ,. . . )
                                                                      convert string s to double                atof(s)                    SHRT_MAX max value of short                     (+32,767)
read formatted data               scanf("format ",&name 1 ,. . . )
                                                                      convert string s to integer               atoi(s)                    SHRT_MIN min value of short                     (−32,768)
read from string s           sscanf(s,"format ",&name 1 ,. . . )
                                                                      convert string s to long                  atol(s)                   UCHAR_MAX max value of unsigned char                  (255)
read line to string s (< max chars)         gets(s,max)
                                                                      convert prefix of s to double              strtod(s,endp)             UINT_MAX max value of unsigned int                (65,535)
print string s                              puts(s)
                                                                      convert prefix of s (base b) to long       strtol(s,endp,b)          ULONG_MAX max value of unsigned long       (4,294,967,295)
File I/O
                                                                           same, but unsigned long              strtoul(s,endp,b)         USHRT_MAX max value of unsigned short             (65,536)
declare file pointer                         FILE *fp
                                                                      Storage Allocation
pointer to named file                   fopen("name ","mode ")
                                                                      allocate storage            malloc(size), calloc(nobj,size)       Float Type Limits <float.h>
     modes: r (read), w (write), a (append)                                                                                               FLT_RADIX         radix of exponent rep                          (2)
                                                                      change size of object                     realloc(pts,size)
get a character                             getc(fp)                                                                                      FLT_ROUNDS        floating point rounding mode
                                                                      deallocate space                          free(ptr)
write a character                           putc(chr ,fp)                                                                                 FLT_DIG           decimal digits of precision                   (6)
                                                                      Array Functions
write to file                   fprintf(fp,"format ",arg 1 ,. . . )
                                                                      search array for key        bsearch(key,array,n,size,cmp())         FLT_EPSILON       smallest x so 1.0 + x = 1.0                (10−5 )
read from file                    fscanf(fp,"format ",arg 1 ,. . . )
                                                                      sort array ascending order        qsort(array,n,size,cmp())         FLT_MANT_DIG      number of digits in mantissa
close file                                   fclose(fp)
                                                                                                                                          FLT_MAX           maximum floating point number               (1037 )
non-zero if error                           ferror(fp)                Time and Date Functions <time.h>                                    FLT_MAX_EXP       maximum exponent
non-zero if EOF                             feof(fp)
                                                                      processor time used by program              clock()                 FLT_MIN           minimum floating point number             (10−37 )
read line to string s (< max chars)         fgets(s,max,fp )
                                                                           Example. clock()/CLOCKS_PER_SEC is time in seconds             FLT_MIN_EXP       minimum exponent
write string s                              fputs(s,fp )
                                                                      current calendar time                       time()                  DBL_DIG           decimal digits of precision                   (10)
Codes for Formatted I/O: "%-+ 0w.pmc"
       - left justify                                                 time2 -time1 in seconds (double)        difftime(time2 ,time1 )     DBL_EPSILON       smallest x so 1.0 + x = 1.0                (10−9 )
       + print with sign                                              arithmetic types representing times         clock_t,time_t          DBL_MANT_DIG      number of digits in mantissa
     space print space if no sign                                     structure type for calendar time comps          tm                  DBL_MAX           max double floating point number            (1037 )
       0 pad with leading zeros                                            tm_sec        seconds after minute                             DBL_MAX_EXP       maximum exponent
       w min field width                                                    tm_min        minutes after hour                               DBL_MIN           min double floating point number          (10−37 )
       p precision                                                         tm_hour       hours since midnight                             DBL_MIN_EXP       minimum exponent
       m conversion character:                                             tm_mday       day of month
                 h short,      l long,       L long double                 tm_mon        months since January
       c    conversion character:                                          tm_year       years since 1900
          d,i integer           u unsigned                                 tm_wday       days since Sunday
           c single char        s char string                              tm_yday       days since January 1
           f double           e,E exponential                              tm_isdst      Daylight Savings Time flag
           o octal            x,X hexadecimal                         convert local time to calendar time         mktime(tp)
           p pointer            n number of chars written             convert time in tp to string                asctime(tp)
          g,G same as f or e,E depending on exponent                  convert calendar time in tp to local time ctime(tp)
                                                                      convert calendar time to GMT                gmtime(tp)
Variable Argument Lists <stdarg.h>                                    convert calendar time to local time         localtime(tp)
declaration of pointer to arguments       va_list name;               format date and time info       strftime(s,smax,"format ",tp)
initialization of argument pointer   va_start(name ,lastarg )              tp is a pointer to a structure of type tm
     lastarg is last named parameter of the function
access next unamed arg, update pointer va_arg(name ,type)             Mathematical Functions <math.h>
call before exiting function              va_end(name )               Arguments and returned values are double
                                                                      trig functions                     sin(x), cos(x), tan(x)
                                                                      inverse trig functions         asin(x), acos(x), atan(x)
                                                                      arctan(y/x)                            atan2(y,x)
                                                                      hyperbolic trig functions      sinh(x), cosh(x), tanh(x)                 May 1999 v1.3. Copyright c 1999 Joseph H. Silverman
                                                                      exponentials & logs             exp(x), log(x), log10(x)
                                                                                                                                        Permission is granted to make and distribute copies of this card pro-
                                                                      exponentials & logs (2 power)     ldexp(x,n), frexp(x,*e)         vided the copyright notice and this permission notice are preserved on
                                                                      division & remainder               modf(x,*ip), fmod(x,y)         all copies.
                                                                      powers                                 pow(x,y), sqrt(x)          Send comments and corrections to J.H. Silverman, Math. Dept., Brown
                                                                      rounding                      ceil(x), floor(x), fabs(x)          Univ., Providence, RI 02912 USA. jhs@math.brown.edu

                                4                                                                   5                                                                     6

Mais conteúdo relacionado

Mais procurados

Mais procurados (17)

Functions
FunctionsFunctions
Functions
 
Introduction to ad-3.4, an automatic differentiation library in Haskell
Introduction to ad-3.4, an automatic differentiation library in HaskellIntroduction to ad-3.4, an automatic differentiation library in Haskell
Introduction to ad-3.4, an automatic differentiation library in Haskell
 
Preprocessor Programming
Preprocessor ProgrammingPreprocessor Programming
Preprocessor Programming
 
A regex ekon16
A regex ekon16A regex ekon16
A regex ekon16
 
Core c sharp and .net quick reference
Core c sharp and .net quick referenceCore c sharp and .net quick reference
Core c sharp and .net quick reference
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
 
strings
stringsstrings
strings
 
C++ 11 Features
C++ 11 FeaturesC++ 11 Features
C++ 11 Features
 
Pointers in C
Pointers in CPointers in C
Pointers in C
 
C Assignment Help
C Assignment HelpC Assignment Help
C Assignment Help
 
Pointers in C
Pointers in CPointers in C
Pointers in C
 
Unit 2
Unit 2Unit 2
Unit 2
 
C programming - Pointers
C programming - PointersC programming - Pointers
C programming - Pointers
 
7 functions
7  functions7  functions
7 functions
 
Computer Network Assignment Help
Computer Network Assignment HelpComputer Network Assignment Help
Computer Network Assignment Help
 
Software Construction Assignment Help
Software Construction Assignment HelpSoftware Construction Assignment Help
Software Construction Assignment Help
 
What's New in C++ 11?
What's New in C++ 11?What's New in C++ 11?
What's New in C++ 11?
 

Semelhante a C reference card

ANSI C REFERENCE CARD
ANSI C REFERENCE CARDANSI C REFERENCE CARD
ANSI C REFERENCE CARDTia Ricci
 
Testing for share
Testing for share Testing for share
Testing for share Rajeev Mehta
 
NaBL: A Meta-Language for Declarative Name Binding and Scope Rules
NaBL: A Meta-Language for Declarative Name Binding  and Scope RulesNaBL: A Meta-Language for Declarative Name Binding  and Scope Rules
NaBL: A Meta-Language for Declarative Name Binding and Scope RulesEelco Visser
 
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1Little Tukta Lita
 
Ti1220 Lecture 2: Names, Bindings, and Scopes
Ti1220 Lecture 2: Names, Bindings, and ScopesTi1220 Lecture 2: Names, Bindings, and Scopes
Ti1220 Lecture 2: Names, Bindings, and ScopesEelco Visser
 
46630497 fun-pointer-1
46630497 fun-pointer-146630497 fun-pointer-1
46630497 fun-pointer-1AmIt Prasad
 
presentation_functions_1443207686_140676.ppt
presentation_functions_1443207686_140676.pptpresentation_functions_1443207686_140676.ppt
presentation_functions_1443207686_140676.pptSandipPradhan23
 
Ekeko Technology Showdown at SoTeSoLa 2012
Ekeko Technology Showdown at SoTeSoLa 2012Ekeko Technology Showdown at SoTeSoLa 2012
Ekeko Technology Showdown at SoTeSoLa 2012Coen De Roover
 
The Ring programming language version 1.9 book - Part 123 of 210
The Ring programming language version 1.9 book - Part 123 of 210The Ring programming language version 1.9 book - Part 123 of 210
The Ring programming language version 1.9 book - Part 123 of 210Mahmoud Samir Fayed
 
The Ring programming language version 1.8 book - Part 116 of 202
The Ring programming language version 1.8 book - Part 116 of 202The Ring programming language version 1.8 book - Part 116 of 202
The Ring programming language version 1.8 book - Part 116 of 202Mahmoud Samir Fayed
 
FP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyondFP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyondMario Fusco
 
Introduction of flex
Introduction of flexIntroduction of flex
Introduction of flexvip_du
 
Csharp In Detail Part2
Csharp In Detail Part2Csharp In Detail Part2
Csharp In Detail Part2Mohamed Krar
 
C language presentation
C language presentationC language presentation
C language presentationbainspreet
 
Regular expressions in oracle
Regular expressions in oracleRegular expressions in oracle
Regular expressions in oracleLogan Palanisamy
 
Diploma ii cfpc u-4 function, storage class and array and strings
Diploma ii  cfpc u-4 function, storage class and array and stringsDiploma ii  cfpc u-4 function, storage class and array and strings
Diploma ii cfpc u-4 function, storage class and array and stringsRai University
 

Semelhante a C reference card (20)

C Reference Card (Ansi) 2
C Reference Card (Ansi) 2C Reference Card (Ansi) 2
C Reference Card (Ansi) 2
 
ANSI C REFERENCE CARD
ANSI C REFERENCE CARDANSI C REFERENCE CARD
ANSI C REFERENCE CARD
 
Testing for share
Testing for share Testing for share
Testing for share
 
NaBL: A Meta-Language for Declarative Name Binding and Scope Rules
NaBL: A Meta-Language for Declarative Name Binding  and Scope RulesNaBL: A Meta-Language for Declarative Name Binding  and Scope Rules
NaBL: A Meta-Language for Declarative Name Binding and Scope Rules
 
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
 
Ti1220 Lecture 2: Names, Bindings, and Scopes
Ti1220 Lecture 2: Names, Bindings, and ScopesTi1220 Lecture 2: Names, Bindings, and Scopes
Ti1220 Lecture 2: Names, Bindings, and Scopes
 
C# programming
C# programming C# programming
C# programming
 
46630497 fun-pointer-1
46630497 fun-pointer-146630497 fun-pointer-1
46630497 fun-pointer-1
 
presentation_functions_1443207686_140676.ppt
presentation_functions_1443207686_140676.pptpresentation_functions_1443207686_140676.ppt
presentation_functions_1443207686_140676.ppt
 
Ekeko Technology Showdown at SoTeSoLa 2012
Ekeko Technology Showdown at SoTeSoLa 2012Ekeko Technology Showdown at SoTeSoLa 2012
Ekeko Technology Showdown at SoTeSoLa 2012
 
The Ring programming language version 1.9 book - Part 123 of 210
The Ring programming language version 1.9 book - Part 123 of 210The Ring programming language version 1.9 book - Part 123 of 210
The Ring programming language version 1.9 book - Part 123 of 210
 
The Ring programming language version 1.8 book - Part 116 of 202
The Ring programming language version 1.8 book - Part 116 of 202The Ring programming language version 1.8 book - Part 116 of 202
The Ring programming language version 1.8 book - Part 116 of 202
 
Tut1
Tut1Tut1
Tut1
 
FP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyondFP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyond
 
Introduction of flex
Introduction of flexIntroduction of flex
Introduction of flex
 
Interpreter Case Study - Design Patterns
Interpreter Case Study - Design PatternsInterpreter Case Study - Design Patterns
Interpreter Case Study - Design Patterns
 
Csharp In Detail Part2
Csharp In Detail Part2Csharp In Detail Part2
Csharp In Detail Part2
 
C language presentation
C language presentationC language presentation
C language presentation
 
Regular expressions in oracle
Regular expressions in oracleRegular expressions in oracle
Regular expressions in oracle
 
Diploma ii cfpc u-4 function, storage class and array and strings
Diploma ii  cfpc u-4 function, storage class and array and stringsDiploma ii  cfpc u-4 function, storage class and array and strings
Diploma ii cfpc u-4 function, storage class and array and strings
 

C reference card

  • 1. C Reference Card (ANSI) Constants Flow of Control long (suffix) L or l statement terminator ; Program Structure/Functions float (suffix) F or f block delimeters { } type fnc(type 1 ,. . . ) function declarations exponential form e exit from switch, while, do, for break type name external variable declarations octal (prefix zero) 0 next iteration of while, do, for continue main() { main routine hexadecimal (prefix zero-ex) 0x or 0X go to goto label declarations local variable declarations character constant (char, octal, hex) 'a', 'ooo', 'xhh' label label : statements newline, cr, tab, backspace n, r, t, b return value from function return expr } special characters , ?, ', " Flow Constructions type fnc(arg 1 ,. . . ) { function definition string constant (ends with '0') "abc. . . de" if statement if (expr ) statement declarations local variable declarations else if (expr ) statement statements Pointers, Arrays & Structures else statement return value; declare pointer to type type *name while statement while (expr ) statement } declare function returning pointer to type type *f() comments for statement for (expr 1 ; expr 2 ; expr 3 ) /* */ declare pointer to function returning type type (*pf)() statement main(int argc, char *argv[]) main with args generic pointer type void * do statement do statement exit(arg ) terminate execution null pointer NULL while(expr ); object pointed to by pointer *pointer C Preprocessor address of object name &name switch statement switch (expr ) { case const 1 : statement 1 break; include library file #include <filename> array name[dim ] case const 2 : statement 2 break; include user file #include "filename" multi-dim array name[dim 1 ][dim 2 ]. . . default: statement replacement text #define name text Structures } replacement macro #define name(var ) text struct tag { structure template Example. #define max(A,B) ((A)>(B) ? (A) : (B)) declarations declaration of members ANSI Standard Libraries undefine #undef name }; <assert.h> <ctype.h> <errno.h> <float.h> <limits.h> quoted string in replace # create structure struct tag name <locale.h> <math.h> <setjmp.h> <signal.h> <stdarg.h> concatenate args and rescan ## member of structure from template name.member <stddef.h> <stdio.h> <stdlib.h> <string.h> <time.h> conditional execution #if, #else, #elif, #endif member of pointed to structure pointer -> member is name defined, not defined? #ifdef, #ifndef Example. (*p).x and p->x are the same Character Class Tests <ctype.h> name defined? defined(name ) single value, multiple type structure union alphanumeric? isalnum(c) line continuation char bit field with b bits member : b alphabetic? isalpha(c) control character? iscntrl(c) Data Types/Declarations Operators (grouped by precedence) decimal digit? isdigit(c) character (1 byte) char structure member operator name.member printing character (not incl space)? isgraph(c) integer int structure pointer pointer ->member lower case letter? islower(c) float (single precision) float printing character (incl space)? isprint(c) increment, decrement ++, -- float (double precision) double printing char except space, letter, digit? ispunct(c) plus, minus, logical not, bitwise not +, -, !, ~ short (16 bit integer) short space, formfeed, newline, cr, tab, vtab? isspace(c) indirection via pointer, address of object *pointer , &name long (32 bit integer) long upper case letter? isupper(c) cast expression to type (type) expr positive and negative signed hexadecimal digit? isxdigit(c) size of an object sizeof only positive unsigned convert to lower case? tolower(c) pointer to int, float,. . . *int, *float,. . . multiply, divide, modulus (remainder) *, /, % convert to upper case? toupper(c) enumeration constant enum add, subtract +, - constant (unchanging) value const String Operations <string.h> declare external variable extern left, right shift [bit ops] <<, >> s,t are strings, cs,ct are constant strings register variable register comparisons >, >=, <, <= length of s strlen(s) local to source file static comparisons ==, != copy ct to s strcpy(s,ct) no value void up to n chars strncpy(s,ct,n) bitwise and & structure struct concatenate ct after s strcat(s,ct) create name by data type typedef typename bitwise exclusive or ^ up to n chars strncat(s,ct,n) size of an object (type is size_t) sizeof object bitwise or (incl) | compare cs to ct strcmp(cs,ct) size of a data type (type is size_t) sizeof(type name) logical and && only first n chars strncmp(cs,ct,n) pointer to first c in cs strchr(cs,c) Initialization logical or || pointer to last c in cs strrchr(cs,c) initialize variable type name=value conditional expression expr 1 ? expr 2 : expr 3 copy n chars from ct to s memcpy(s,ct,n) initialize array type name[]={value 1 ,. . . } assignment operators +=, -=, *=, . . . copy n chars from ct to s (may overlap) memmove(s,ct,n) initialize char string char name[]="string " expression evaluation separator , compare n chars of cs with ct memcmp(cs,ct,n) pointer to first c in first n chars of cs memchr(cs,c,n) Unary operators, conditional expression and assignment oper- put c into first n chars of cs memset(s,c,n) ators group right to left; all others group left to right. c 1999 Joseph H. Silverman Permissions on back. v1.3 1 2 3
  • 2. C Reference Card (ANSI) Standard Utility Functions <stdlib.h> Integer Type Limits <limits.h> absolute value of int n abs(n) The numbers given in parentheses are typical values for the Input/Output <stdio.h> absolute value of long n labs(n) constants on a 32-bit Unix system. quotient and remainder of ints n,d div(n,d) CHAR_BIT bits in char (8) Standard I/O retursn structure with div_t.quot and div_t.rem CHAR_MAX max value of char (127 or 255) standard input stream stdin quotient and remainder of longs n,d ldiv(n,d) CHAR_MIN min value of char (−128 or 0) standard output stream stdout returns structure with ldiv_t.quot and ldiv_t.rem INT_MAX max value of int (+32,767) standard error stream stderr pseudo-random integer [0,RAND_MAX] rand() INT_MIN min value of int (−32,768) end of file EOF set random seed to n srand(n) LONG_MAX max value of long (+2,147,483,647) get a character getchar() terminate program execution exit(status) LONG_MIN min value of long (−2,147,483,648) print a character putchar(chr ) pass string s to system for execution system(s) SCHAR_MAX max value of signed char (+127) print formatted data printf("format ",arg 1 ,. . . ) Conversions SCHAR_MIN min value of signed char (−128) print to string s sprintf(s,"format ",arg 1 ,. . . ) convert string s to double atof(s) SHRT_MAX max value of short (+32,767) read formatted data scanf("format ",&name 1 ,. . . ) convert string s to integer atoi(s) SHRT_MIN min value of short (−32,768) read from string s sscanf(s,"format ",&name 1 ,. . . ) convert string s to long atol(s) UCHAR_MAX max value of unsigned char (255) read line to string s (< max chars) gets(s,max) convert prefix of s to double strtod(s,endp) UINT_MAX max value of unsigned int (65,535) print string s puts(s) convert prefix of s (base b) to long strtol(s,endp,b) ULONG_MAX max value of unsigned long (4,294,967,295) File I/O same, but unsigned long strtoul(s,endp,b) USHRT_MAX max value of unsigned short (65,536) declare file pointer FILE *fp Storage Allocation pointer to named file fopen("name ","mode ") allocate storage malloc(size), calloc(nobj,size) Float Type Limits <float.h> modes: r (read), w (write), a (append) FLT_RADIX radix of exponent rep (2) change size of object realloc(pts,size) get a character getc(fp) FLT_ROUNDS floating point rounding mode deallocate space free(ptr) write a character putc(chr ,fp) FLT_DIG decimal digits of precision (6) Array Functions write to file fprintf(fp,"format ",arg 1 ,. . . ) search array for key bsearch(key,array,n,size,cmp()) FLT_EPSILON smallest x so 1.0 + x = 1.0 (10−5 ) read from file fscanf(fp,"format ",arg 1 ,. . . ) sort array ascending order qsort(array,n,size,cmp()) FLT_MANT_DIG number of digits in mantissa close file fclose(fp) FLT_MAX maximum floating point number (1037 ) non-zero if error ferror(fp) Time and Date Functions <time.h> FLT_MAX_EXP maximum exponent non-zero if EOF feof(fp) processor time used by program clock() FLT_MIN minimum floating point number (10−37 ) read line to string s (< max chars) fgets(s,max,fp ) Example. clock()/CLOCKS_PER_SEC is time in seconds FLT_MIN_EXP minimum exponent write string s fputs(s,fp ) current calendar time time() DBL_DIG decimal digits of precision (10) Codes for Formatted I/O: "%-+ 0w.pmc" - left justify time2 -time1 in seconds (double) difftime(time2 ,time1 ) DBL_EPSILON smallest x so 1.0 + x = 1.0 (10−9 ) + print with sign arithmetic types representing times clock_t,time_t DBL_MANT_DIG number of digits in mantissa space print space if no sign structure type for calendar time comps tm DBL_MAX max double floating point number (1037 ) 0 pad with leading zeros tm_sec seconds after minute DBL_MAX_EXP maximum exponent w min field width tm_min minutes after hour DBL_MIN min double floating point number (10−37 ) p precision tm_hour hours since midnight DBL_MIN_EXP minimum exponent m conversion character: tm_mday day of month h short, l long, L long double tm_mon months since January c conversion character: tm_year years since 1900 d,i integer u unsigned tm_wday days since Sunday c single char s char string tm_yday days since January 1 f double e,E exponential tm_isdst Daylight Savings Time flag o octal x,X hexadecimal convert local time to calendar time mktime(tp) p pointer n number of chars written convert time in tp to string asctime(tp) g,G same as f or e,E depending on exponent convert calendar time in tp to local time ctime(tp) convert calendar time to GMT gmtime(tp) Variable Argument Lists <stdarg.h> convert calendar time to local time localtime(tp) declaration of pointer to arguments va_list name; format date and time info strftime(s,smax,"format ",tp) initialization of argument pointer va_start(name ,lastarg ) tp is a pointer to a structure of type tm lastarg is last named parameter of the function access next unamed arg, update pointer va_arg(name ,type) Mathematical Functions <math.h> call before exiting function va_end(name ) Arguments and returned values are double trig functions sin(x), cos(x), tan(x) inverse trig functions asin(x), acos(x), atan(x) arctan(y/x) atan2(y,x) hyperbolic trig functions sinh(x), cosh(x), tanh(x) May 1999 v1.3. Copyright c 1999 Joseph H. Silverman exponentials & logs exp(x), log(x), log10(x) Permission is granted to make and distribute copies of this card pro- exponentials & logs (2 power) ldexp(x,n), frexp(x,*e) vided the copyright notice and this permission notice are preserved on division & remainder modf(x,*ip), fmod(x,y) all copies. powers pow(x,y), sqrt(x) Send comments and corrections to J.H. Silverman, Math. Dept., Brown rounding ceil(x), floor(x), fabs(x) Univ., Providence, RI 02912 USA. jhs@math.brown.edu 4 5 6