21
C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics make it a good choice for almost any kind of programming, C has proven especially useful in systems programming because it facilitates writing fast, compact programs that are readily adaptable to other systems. Well-written C programs are often as fast as assembly- language programs, and they are typically easier for programmers to read and maintain. Resumo de C

C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Embed Size (px)

Citation preview

Page 1: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

C Language Reference

The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics make it a good choice for almost any kind of programming, C has proven especially useful in systems programming because it facilitates writing fast, compact programs that are readily adaptable to other systems. Well-written C programs are often as fast as assembly-language programs, and they are typically easier for programmers to read and maintain.

Resumo de C

Page 2: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Palavras rervadas

auto double int struct

break else long switch

case enum register typedef

char extern return union

const float short unsigned

continue for signed void

default goto sizeof volatile

do if static while

C Keywords (only 32)

Page 3: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Tipos de dadosunsigned char var_name_1; /* ranges from 0 to 255 */signed char var_name_2; /* ranges from -128 to 127 */char alpha; /* plataform dependent */

short int var_name_3; /* 2 bytes */unsigned short int var_name_4;

long int var_name_5; /* 4 bytes */unsigned long int var_name_6;

int var_name_7;

float var_name_8; /* 4 bytes */

double var_name_9; /* 8 bytes */

inte

gral

type

sfl

oati

ng ty

pes

Page 4: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Estruturas e definição de tipos

struct struct_name {element 1;element 2;...

} struct_variable;

struct _sphere { int x; int y; float radius; } s1;

typedef type_specifier new_name;

typedef unsigned char uchar;

typedef struct _sphere Sphere;

Sphere s1;

struct _sphere { int x; int y; float radius; };

Page 5: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Arrays

int x[100];

for (i=0; i<100; i++) x[i]=i;

int x[10][20]; não recomendo

Page 6: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Operadores numéricos

++ –– Unary increment and decrement operators

* / % Multiplicative operators

+ – Additive operators (also unary + or -)

7%3 is 1

i++ is i=i+1

prec

eden

ce

Page 7: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Operadores lógicos e relacionais

Operator Meaning

< > <= >= == != Relational operators (greater than, …)

&& || ! Logical operators (AND, OR, NOT)

Obs.: 1 (TRUE) and 0 (FALSE)

(100<200) && 10 is TRUE

Page 8: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Operadores bit a bit

& | ^ Binary bitwise operators (AND, OR, XOR)

<< >> Unary shift operators (left, right)

~ One’s complement

0100 1101& 0011 1011 _________ 0000 1001

0100 1101| 0011 1011 _________ 0111 1111

0100 1101^ 0011 1011 _________ 0111 0110

unsigned short int x;x=10; /* 00000000 00001010 = 8 + 2 = 10 */x=x<<1; /* 00000000 00010100 = 16 + 4 = 20 */x=x>>1; /* 00000000 00001010 = 8 + 2 = 10 */x=~x; /* 11111111 11110101 = ... = 65525 */

2x

Page 9: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Operadores de endereço

y = &x; /* 0x0064fdf4 */*y = 100; /* x = 100 */ z = *y/10; /* z = 10 */

& “address of”

* “at address”

int x[100]; int *y;

y=x; y[50]=37; /* x[50] contém 37 */

int *x;

x = (int *) calloc(100, sizeof(int));

Page 10: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Controle de fluxo (if)

if ( expression ) statementif ( expression ) statement else statement

if ( i > 0 ) y = x / i;else { x = i; y = f( x );}

var = logical_exp ? exp1 : exp2 ;

x = (y<10) ? 20 : 40 ;

x = (x<0) ? 0 : x ;

M = (a<b) ? b : a ;

x = x+10; x+=10;

y = y/x; y/=z;

convenient “shorthand”

Page 11: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Controle de fluxo (for)

for ( init-expression opt ; cond-expression opt ; loop-expression opt ) statement

for ( i = space = tab = 0; i < MAX; i++ ) { if ( line[i] == ' ' ) space++; if ( line[i] == '\t' ) { tab++; line[i] = ' '; }}

Page 12: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Controle de fluxo (do-while)

do statement while ( expression ) ;

do { y = f( x ); x--;} while ( x > 0 );

while ( expression ) statement

while ( i >= 0 ) { string1[i] = string2[i]; i--;}

Page 13: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Controle de fluxo (switch)

switch( c ) { case 'A':

capa++; case 'a':

lettera++; default :

total++;}

switch( i ) { case -1: n++; break; case 0 : z++; break; case 1 : p++; break;}

Page 14: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Funções

return_type function_name (parameter_list){ body of function} double dot( double *u, double *v )

{ int i; double val=0.0;

for (i=0; i<3; i++) val+=u[i]*v[i];

return val;}

void main( void ) {program-statements}

int main( int argc, char *argv[ ]){program-statements}

Page 15: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Valores e Referência

void Div2(double a ) { a=a/2; return;}

void main( void ) { double a=5.0; Div2(a); printf(“ %d \n”, a);}

Qual o valor de a?

Page 16: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Valores e Referência

void Div2(double *a ) { *a=(*a)/2; return;}

void main( void ) { double a=5.0; Div2(&a); printf(“ %d \n”, a);}

&a

5.0

a

2.5

Page 17: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Classes de variáveisScope and Visibility - file, function, block, or function prototype

int x;void main( void ) { int y; y=get_value(); x=100; printf(“%d %d”, x, x*y);}int f1( void ) { int x; x=get_value(); return x;}

Page 18: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Modificadores de classe (static)

/* Example of the static keyword */

static int i; /* Variable accessible only from this file */

static void func(); /* Function accessible only from this file */

int max_so_far( int curr ){ static int biggest; /* Variable whose value is retained */ /* between each function call */if ( curr > biggest ) biggest = curr;

return biggest;}

Page 19: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Modificadores de classe (extern)

int counter=0, up, down;double x, y, z;

char f1(int n1){ …}

double f2(int n2){…}

void main (void){…}

extern int counter;

extern char f1(int n1);

or

char f1(int n1);

extern int counter, up, down;

extern double f2(int n2);

main.cpart1.c

extern int counter;

extern char f1(int n1);

or

char f1(int n1);

part1.c

part2.c

Page 20: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Diretivas de pré-compilação

#define WIDTH 80

#define LENGTH ( WIDTH + 10 )

#ifndef _D3D_H_#define _D3D_H_…#endif /* _D3D_H_ */

#include <stdio.h>

Page 21: C Language Reference The C language is a general-purpose programming language known for its efficiency, economy, and portability. While these characteristics

Referências em C

The C Programming LanguageBrian W. Kerningham, Dennis M. RitchiePrentice-Hall, 1978(ver tambem traducao de 1990 da CAMPUS)

C How to Program (second edition)H. M. Deitel, P. J. DeitelPrentice Hall, 1994