LINGUAGEM C
1
Introdução
A linguagem C foi criada por Dennis Ritchie, em 1972, no centro de
Pesquisas da Bell Laboratories. Sua primeira utilização importante foi a reescrita
do Sistema Operacional UNIX, que até então era escrito em assembly.
Em meados de 1970 o UNIX saiu do laboratório para ser liberado para as
universidades. Foi o suficiente para que o sucesso da linguagem atingisse
proporções tais que, por volta de 1980, já existiam várias versões de compiladores
C oferecidas por várias empresas, não sendo mais restritas apenas ao ambiente
UNIX, porém compatíveis com vários outros sistemas operacionais.
Em 1983, a ANSI (American National Standards Institute) fundou uma
comissão para definir uma versão padronizada para a linguagem C. Esta versão
chamou-se ANSI C. Desta forma, simplesmente compilando o código fonte em
qualquer sistema, um programa escrito em ANSI C funciona em praticamente
qualquer computador.
A linguagem C é uma linguagem de programação de propósito geral, ou
seja, serve para o desenvolvimento de programas em áreas diversas como:
engenharia, física, química, automação industrial e outras. Tendo como principais
características: flexibilidade, recursos de baixo nível, confiabilidade, eficiência e
portabilidade (o ANSI C).
Características

C une conceitos de linguagem de montagem e programação de alto nível (o
programador usufrui recursos de hardware sem a necessidade de conhecer
o assembly da máquina);

É uma linguagem compilada: lê todo o código fonte e gera o código objeto
(ling. de máquina);

É “case sensitive”, ou seja, ele faz distinção entre maiúsculas e minúsculas.
Dessa forma as palavras ANA, ana, Ana e Ana são consideradas diferentes
pelo C;
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
2
Estrutura de um programa em C
Um programa C consiste em uma ou várias funções, uma das quais precisa
ser denominada main. O programa sempre começará executando a função main.
main( ) /* programa principal */
{
/* declarações e comandos */
}
Ou
void main(void) /* programa principal */
{
/* declarações e comandos */
}
Regras Gerais

Toda função deve ser iniciada por uma chave de abertura { e encerrada por
uma chave de fechamento }

Toda função é procedida de parênteses “( )”

Todo programa deverá conter a função main;

As linhas de código são sempre encerradas por um ponto e vírgula;

A formatação dos programas é completamente livre, mas temos por
conveniência manter a legibilidade;

Os comandos são executados na ordem em que foram escritos;
Comentários
Os comentários devem ser delimitados por /* no início e */ no final. Podendo
ser usados também os caracteres // para comentários de uma linha.
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
3
Exemplo:
/* Os comentários podem ser colocados em qualquer parte do programa */
main() /* primeiro programa */
{
printf("oi !”); //imprime a mensagem oi !
/* Comentário de mais
Uma linha */
printf(“olá !”);
}
Pausa no Programa
Para dar uma pausa na tela, utilizamos o comando PAUSE do sistema
operacional. Esse comando faz o programa ficar esperando que uma tecla seja
pressionada para poder continuar.
system (“PAUSE”); ou system(“pause”);
Variáveis
Local na memória do computador que serve para guardar um número, letra
ou símbolo, este valor pode ser alterado. É representado com um nome que é
dado pelo programador, que não pode ser alterado durante o programa.
Exemplos de nome de variáveis: a, b, VALOR1, valor_1, _nome, ano_2009
Regras Gerais

Em C, todas variáveis utilizadas no programa devem ser declaradas
previamente;

A declaração indica, no mínimo, o nome e o tipo de cada uma delas;

Na ocorrência de mais de uma variável do mesmo tipo, podemos declarar
de uma única vez, separando seus nomes por vírgula;

As letras minúsculas são diferenciadas das maiúsculas;

O tamanho máximo para o nome de uma variável é de 32 posições;
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
4

Todo nome de variável é iniciado por uma letra (a – z ou A – Z), ou o
caracter traço baixo ( _ ), o restante pode conter letras, traço baixo ou
números;

As palavras reservadas descritas a seguir, não podem ser usadas como
nome de variável.

As variáveis deverão ser declaradas antes de qualquer instrução;
Palavras reservadas
Auto, break, case, char, const, continue, default, do, double, else, enum, extern,
float, for, goto, if, int, long, main, register, return, short, signed, sizeof, static, struct,
switch, typedef, union, unsigned, void, volatile, while, class, public, private,
protected, virtual.
Principais tipos de Variáveis
Tipo
Bits
Descrição
Escala
Void
0
Sem valor
sem valor
Char
8
Caracter
-128 a 127
Int
16
Inteiro
-32768 a 32767
Float
32
Real
3.4E-38 a 3.4E+38
Double
64
Real entendido
1.7E-308 a 1.7E+308
Entretanto, existe alguns tipos que podem ser combinados com os tipos
básicos: short, long, signed, unsigned.
Declarando Variáveis
A forma de declaração de variáveis é a seguinte: tipo nome;
Exemplos:
int K;
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
5
double valores;
float nota;
char letra;
Uma particularidade das strings em C (tipo char), é que elas possuem um
caracter terminador, o qual delimita o final do seu conteúdo, que é o caracter „\0‟
(lê-se “contrabarra zero”). Desta forma, o tamanho da string deve ser definido com
um caracter a mais do que será efetivamente necessário para o programa. O
compilador C coloca, automaticamente, o „\0‟ no final. Por exemplo:
char estado[3]=”SE”; /* declara uma conjunto de 3 caracteres chamado estado, no
qual cada posição do conjunto terá um dos seguintes valores: „S‟, „E‟ e „\0‟ */
char cidade[100]=”Simão Dias”; /* declara um conjunto de 100 caracteres
chamado cidade */
char nome[]=”Fulano de Tal”; /*quando o tamanho do conjunto de caracteres não é
definido e um valor é atribuído ao mesmo, o conjunto assume o tamanho a string
atribuída, por exemplo, neste caso aqui, o conjunto de caracteres teria tamanho 14
letras e espaços da string atribuída + o caracter „\0‟ */
Inicializando Variáveis
Pode-se inicializar uma variável no momento de sua declaração, ou em
qualquer momento do algoritmo.
void main(void)
{
float tempo=27.25;
char tipo=‟C‟; → utilizamos aspas simples
int x;
x=10;
c=c+x;
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
6
char titulo[30] = “ Essa é uma string”; → utilizamos aspas duplas
int a=10, b=a+20;
}
Variáveis Globais e Locais
Locais
Estas variáveis só têm validade dentro do bloco de código ou rotina no qual
são declaradas, isto é, só a função à qual elas pertencem sabe da existência
destas variáveis, dentro do bloco no qual foram declaradas.
Também são consideradas variáveis locais as variáveis declaradas na lista
de parâmetros de uma função.
Exemplo:
main()
{
float raio, area; // declaracao de variáveis da função main()
raio = 2.5;
area = 3.14 * raio * raio;
}
Globais
As variáveis globais são definidas fora de qualquer função (inclusive da
função main()) e estarão disponíveis para serem utilizadas em todo o programa.
Pode-se dizer que, como elas estão fora de todas as funções, todas as
funções as vêem.
Exemplo:
int contador; // variável global. Está fora de todas as funções e blocos
main()
{
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
7
float raio, area; // declaracao de variáveis da função main()
raio = 2.5;
area = 3.14 * raio * raio;
}
Obs.: Se uma função declarar uma variável local com o mesmo nome de uma
variável global, esta variável local ocultará/substituirá aquela global, que não
poderá mais ser acessada.
Exemplo:
int num1, num2; /* 2 variáveis globais do tipo int */
void main(void)
{
int valor, num1; /* 2 variáveis locais do tipo int */
double total; /* 1 variável local do tipo double */
num1 = 5;
/* A atribuição acima será feita à variável local num1 e não à variável global de
mesmo nome */
}
Constantes
Local na memória do computador que serve para guardar um número, letra
ou símbolo, este valor não pode ser alterado. É representado com um nome que é
dado pelo programador, que também não pode ser alterado durante o programa.
Sintaxe
#define NOME_CONSTANTE valor_associado_a_constante
Exemplo:
#define PI 3.1415926536
ou
float const PI=3.1415926536
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
8
Operadores
Operadores Relacionais
Símbolo
Significado
==
Igual
!=
Diferente (não igual)
>
maior que
<
menor que
>=
maior ou igual
<=
menor ou igual
Operadores Aritméticos
Símbolo
Significado
=
atribuição
+
soma
-
Subtração
*
Multiplicação
/
Divisão
%
Módulo (resto da divisão)
++
Incremento de 1
--
Decremento de 1
Existem ainda as seguintes opções de se trabalhar com operadores
aritméticos, por exemplo:
I+=2; → i=i+2;
X*=y+1; → x=x*(y+1);
d-=3 → d=d-3;
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
9
Operadores Lógicos
Símbolo
Significado
!
Não
&&
E (and)
||
OU (or)
Operadores bit a bit
Símbolo
Significado
Exemplo
~
negação
a= 0000 0000 0110 1001
~a=1111 1111 1001 0110
&
and
a=
0000 0000 0110 1001
b=
0000 0010 0101 1100
a&b= 0000 0000 0100 1000
|
or
a=
0000 0000 0110 1001
b=
0000 0010 0101 1100
a | b= 0000 0010 0111 1101
<<
deslocamento para esquerda
a=
0000 0010 0101 1100
a<<3=0001 0010 1110 0000
>>
deslocamento para direita
a=
0000 0010 0101 1100
a>>3=0000 0000 0100 1011
Precedência de operadores
O nível de precedência dos operadores é avaliado da esquerda para direita.
Os parênteses podem ser utilizados para alterar a ordem da avaliação.
(
)
Primeira
++ --
Segunda
* / %
Terceira
+ -
Quarta
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
10
Entrada e Saída de dados
Impressão formatada de dados - Pritf
A função printf (print formated) é uma função da biblioteca de entrada e
saída padrão utilizada para escrever valores numéricos, caracteres e strings. Ela
pode receber diversos parâmetros, sendo que o primeiro deverá ser uma string,
chamada string de controle. Somente será exibido o que for solicitado dentro desta
string.
A string de controle deve aparecer entre aspas duplas e nela podem existir
dois tipos de informações: caracteres comuns e especificadores de formato. Tudo
o que aparecer nesta string que não for um especificador de formato será
impresso literalmente, ou seja, do jeito que estiver escrito.
Cada especificador de formato encontrado nesta string será substituído pelo
parâmetro seguinte pertencente à lista de argumentos da função, na ordem que
aparecerem. A estrutura básica da função printf() é dada a seguir:
printf (“string de controle”, lista de argumentos);
Os especificadores de formato que podem fazer parte da string de controle
são simbolos, representados por um % mais outro caracter, que indicam que um
valor vai ser escrito pela função, na posição correspondente da string de controle.
Eles indicam, também, o tipo e/ou a base numérica do dado a ser escrito.
Cada valor a ser impresso pelo printf deve ter um especificador de formato
correspondente dentro da string de controle. Se faltarem especificadores, os
últimos valores não serão exibidos. Se sobrarem especificadores, serão exibidos
valores indeterminados (lixo de memória).
A tabela a seguir apresenta os principais especificadores de formato
utilizados com a função printf.
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
11
Códigos de Barra Invertida
Código
Significado
\n
Nova linha
\”
aspas duplas
\‟
aspas simples
\\
barra invertida
\t
Tab
\0
Nulo
Códigos de Formatação
Código
Significado
%c
Exibe um caracter
%d
Exibe um inteiro em formato decimal
com sinal
%u
Exibe um inteiro decimal sem sinal
%e
Notação científica (minúscula)
%E
Notação científica (maiúscula)
%f
Ponto flutuante
%o
Exibe um número em notação octal
%s
string de caracteres
%x
Hexadecimal com letra minúscula
%X
Hexadecimal com letra maiúscula
%%
Exibe o caractere %
Exemplos
printf(“Olá, Mundo!“);
Saída: Olá, Mundo!
printf(“linha 1 \nlinha 2 “);
Saída: linha 1
linha 2
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
12
int idade=18;
printf(“Tenho %d anos de vida”,idade);
Saída: Tenho 18 anos de vida.
printf (“Teste %% %%”);
Saída: Teste % %
printf (“Um caractere %c e um inteiro %d”,‟D‟,120);
Saída: Um caractere D e um inteiro 120
printf (“%s e um exemplo”,”Este”)
Saída: Este e um exemplo
printf (“%s%d%%”,”Juros de “,10)
Saída: Juros de 10%
printf (“O valor decimal %d em Hexadecimal: %X e em Octal: %o”, 107, 107, 107);
Saída: O valor decimal 107 em Hexadecimal: 6B e em Octal: 153
Suponha que pi=3.14159 e raio=2.0031, ambas variáveis do tipo float.
printf(“A area do circulo e %e\n”, 2 * pi * raio);
Saída: A área do circulo e 1.258584e+001
printf (“%f”,40.34534);
Saída: 40.34534
Obs.: Para imprimir valores de ponto flutuante usamos o %f. O default dele é
imprimir números com até seis casas decimais.
Depois do sinal % do especificador de formato e antes do caractere que indica o
especificador de formato, podem ser usados alguns modificadores OPCIONAIS
cuja sintaxe é a seguinte:
% [tamanho] [.precisão] caracter_do_especificador_de_formato.
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
13
[tamanho] especificação de tamanho ou quantidade de dígitos a serem impressos.
O tamanho do campo indica quantas posições da saída serão utilizados para
exibir o valor correspondente à um especificador de formato.
Por exemplo, %5d ou %5f indica que o valor a ser impresso vai ocupa 5 posições
na tela. Por padrão, as posições em excesso são preenchidas com brancos e o
valor é alinhado à direita do campo. Sempre que o tamanho do campo for
insuficiente para exibir o valor solicitado, este tamanho é ignorado e o número é
impresso por completo. Desta forma, um valor nunca é truncado.
printf("\n%2d",350);
printf("\n%4f",350.0);
printf("\n%6d",350);
[.precisão] especificador de precisão, ou seja, da quantidade de dígitos à direita do
ponto decimal. É utilizado para configurar valores de ponto flutuante.
Para especificar a quantidade de dígitos à direita do ponto decimal. Utiliza-se da
seguinte forma:

(nada) padrão: 6 dígitos para reais.

.0 nenhum digito decimal.

.n são impressos n dígitos decimais, ou seja, casas depois do ponto
decimal.
Por exemplo, o formato %10.2f, exibe o valor em ponto-flutuante com duas casas
decimais, dentro de um campo de tamanho 10.
Suponha que troco e pagamento sejam variáveis do tipo float cujos valores são,
respectivamente, 12.3 e 15.0
float tot=12.3;
float din=15;
printf("\nTotal %1.2f \nMoney %2.2f \nTroco %10.3f",tot,din,(din-tot));Saída:
Total
12.30
Money 15.00
Troco
2.70
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
14
Leitura formatada de dados – scanf
A função scanf( ) (scan formated) é a principal função de entrada de dados
da biblioteca de entrada e saída padrão da Linguagem C. Ela pode ser usada para
ler virtualmente qualquer tipo de dado inserido por meio do teclado. Porém, ela
costuma ser mais utilizada para a leitura de números inteiros ou de ponto flutuante
(variáveis int, float e double).
A forma geral da função scanf( ) é: scanf (“string de controle”, lista de
argumentos);
A função lê da entrada padrão (teclado) uma lista de valores que serão
formatados pela string de controle e armazenados nos endereços das variáveis da
lista de argumentos. Tal qual no printf(), a string de controle deverá fazer uso de
especificadores de formato que vão dizer à função scanf( ) qual o tipo de dado que
deve ser lido em seguida. Como na função printf( ), os códigos de formato da
função scanf( ) devem ser correspondidos na ordem com os endereços das
variáveis sendo recebidas na lista de argumentos. Os especificadores de formato
estão listados na tabela abaixo:
Código
%c
%d
%u
%e
%f
%g
%o
%s
%x
Significado
Lê um caracter
Lê um inteiro em formato decimal
com sinal
Lê um inteiro decimal sem sinal
Lê um número em notação
científica
Lê um número em ponto flutuante
com ponto opcional
Lê um número em ponto flutuante
com expoente opcional
LÊ um número em base octal
Lê uma string de caracteres (sem
espaço em branco)
Lê um número em Hexadecimal
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
15
As variáveis a serem lidas que fazem parte da lista de argumentos, devem
ser precedidas pelo símbolo &, exceto quando as variáveis forem do tipo string.
Essa é uma diferença fundamental que existe entre o scanf() e o printf().
Exemplos:
scanf(“%d %d”, &num1, &num2);
int indice;
float valor;
scanf(“%d %f”, &indice, &valor);
int main()
{
char nome[5];
printf(“Digite um nome: ”);
scanf(“%s”, nome);
printf(“Ola %s\n”, nome);
}
Outras formas de Entrada e Saída de Dados
getchar
É a função original de entrada de caracter. Armazena a entrada até que a
tecla ENTER seja pressionada.
Exemplo:
Char letra;
Letra=getchar();
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
16
putchar
Imprime um caracter individual na saída padrão.
Exemplo:
main ()
{
char letra; // declara uma variável do tipo caracter
printf (“Entre com uma letra: \n”); // imprime na tela a mensagem especificada
letra = getchar (); // lê um caracter após ser pressionada a tecla <enter>
printf (“O caractere lido foi: “); // imprime na tela a mensagem
putchar (letra); // imprime na tela o caracter armazenado na variável letra
system(“PAUSE”); // espera uma tecla ser digitada para encerrar o programa
}
gets – Lendo Strings
Lê uma string digitada, inclusive com os espaços em branco.
Exemplo:
int main()
{
char nome[60]; // declara uma string de 60 caracteres
printf(“Informe o seu nome: “); //imprime a frase
gets(nome); //lê a string digitada, inclusive com os espaços em branco
printf(“O seu nome é: %s \n”, nome); //imprime a frase e a string
system(“PAUSE”); // espera uma tecla ser digitada para encerrar o programa
}
puts - Imprimindo strings
A função puts imprime uma string e é simples de usar, pois basta passar
como parâmetro para a função a string a ser impressa. A impressão sempre vai
terminar e passar para uma próxima linha, como se tivesse sendo utilizado um
comando printf(“%s\n”, frase).
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
17
Exemplo:
int main()
{
char nome[60]; // declara uma string de 60 caracteres
printf("Informe o seu nome: "); //imprime a frase
gets(nome); //lê a string digitada, inclusive com os espaços em branco
printf("O seu nome é:"); //imprime a frase
puts(nome); //imprime a string
}
Estruturas de Decisão
O comando if instrui o computador a tomar uma decisão simples. Se o valor
entre parênteses da expressão de controle for verdadeiro ele executa as
instruções, caso seja falso, as instruções serão ignoradas, ou executadas as que
estão contidas no bloco do else.
if (expressão de teste)
instrução1;
else
instrução2;
Exemplo 1:
if (X%2)
printf(“ X é impar ”);
else
printf(“ X é par ”);
Exemplo 2:
if (X<Y)
if (X<Z)
printf(“ X é o menor ! “);
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
18
else
printf(“ Z é o menor ! “);
else
if (Y<Z)
printf(“ Y é o menor ! “);
else
printf(“ Z é o menor ! “);
Switch
A instrução switch faz com que um determinado grupo de instruções seja
escolhido entre diversos grupos disponíveis. A seleção é baseada no valor
corrente de uma expressão incluída na instrução switch.
O corpo de cada switch é composto por qualquer número de instruções.
Geralmente a última instrução é o break. O comando break causa a saída
imediata de todo o corpo do switch. Na falta do comando break, todas as
instruções após o case escolhido serão executadas.
Quando a instrução switch é executada, a expressão é avaliada e o controle
é transferido diretamente para o grupo de instruções correspondente ao valor de
expressão. Se nenhum case corresponder ao valor de expressão, não será
selecionado nenhum dos grupos da instrução switch, exceto quando for
implementado o grupo default, que contém instruções que serão executadas caso
não seja selecionado nenhum dos grupos.
Sintaxe
switch (variável)
{
case valor1:
instruções;
break;
case valor2:
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
19
instruções;
break;
default:
instruções;
}
Exemplo
switch (opcao = getchar())
{
case „V‟:
printf(“ Vermelho “);
break;
case „B‟:
printf(“ Branco “);
break;
case „A‟:
printf(“ Azul “);
break;
default:
printf(“ Cor desconhecida ! “);
}
Estruturas de Repetição
for
O laço for possui três expressões, e é útil principalmente quando queremos
repetir algo uma quantidade fixa de vezes.
Dentro dos parênteses após a palavra reservada for, há três elementos que
controlam a ação da repetição. Em primeiro lugar há uma inicialização que é
executada uma única vez. O teste é uma expressão relacional que a função testa
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
20
no início da repetição. O incremento é executado no final do loop após a execução
das instruções.
Sintaxe:
for(inicialização; teste; incremento)
{
instruções
}
Exemplo 1:
for(a=1; a<100; a++)
{
printf(“\n %i”, a);
}
Exemplo 2:
for(i=0, j=9; i<=9, j>=0; i++, j--)
printf(“\n %i %i”, i, j);
while
O laço while utiliza os mesmos elementos do laço for, mas são distribuídos
de maneira diferente no programa.
Se o teste for verdadeiro (diferente de zero), o corpo do laço while é
executado uma vez e a expressão de teste é avaliada novamente. Este ciclo de
teste e execução é repetido até que a expressão de teste se torne falsa (igual a
zero), então o laço termina e o controle do programa passa para a linha seguinte
ao laço.
Sintaxe:
while (expressão teste)
{
instruções
}
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
21
Exemplo:
conta=1;
while (conta < 10)
{
total=total + conta;
printf(“conta = %i, total = %i”, conta, total);
conta++;
}
do... while
Cria um ciclo repetido até que a expressão de teste seja falsa (zero). A
diferença do while é que o mesmo testa a expressão, se satisfaz então executa as
instruções, enquanto que o do...while executa as instruções e depois testa a
expressão.
Sintaxe:
do
{
instruções
}
while (expressão de teste);
Exemplo 1:
do
{
y--;
x++;
}
while (y!=0);
Comandos Auxiliares
break
Pode ser usado no corpo de qualquer estrutura de laço. Causa a saída
imediata do laço.
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
22
Exemplo:
while (salário>100)
{
scanf(“%s”, nome);
if (nome == „a‟)
break;
scanf(“%i”, &salario);
}
continue
O comando continue causa um desvio imediato no laço, ou seja, força a
próxima interação do laço e ignora o código que estiver abaixo.
Exemplo:
while (salario>100)
{
scanf(“%c”, nome);
if (nome == „a‟)
{
salario=1000;
continue;
}
scanf(“%i”, &salario);
}
Funções
Uma função é uma unidade de código de programa autônoma desenhada
para cumprir uma tarefa particular. A função recebe um certo número de
parâmetros e retorna apenas um valor.
Da mesma forma que são declaradas as variáveis, deve-se declarar a
função. A declaração de uma função é chamada de protótipo e é uma instrução
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
23
geralmente colocada no início do programa, que estabelece o tipo da função e os
argumentos que ela recebe.
Declaração:
tipo nome_função(declaração dos parâmetros)
void main(void)
{
Declaração das variáveis locais;
Comandos;
}
Ou
tipo nome_função(lista dos parâmetros)
{
declaração das variáveis locais
comandos;
return(valor);
}
O tipo de uma função é determinado pelo tipo de valor que ela retorna
pelo comando return. Se uma função for do tipo não inteira ela deve ser declarada.
O valor default é inteiro (int) caso não for declarada.
Exemplo
#define PI 3.14159 //definindo constante PI
float area(int r); //definindo a função area
void main(void)
{
int raio;
float area_esfera;
printf(“Digite o raio da esfera: “);
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
24
scanf(“%d”, &raio);
area_esfera=area(raio)
printf(“A área da esfera é: %f”, area_esfera);
}
float area(int r)
{
return(4*PI*r*r);
}
Diretivas de Compilação
Existem comandos que são processados durante a compilação do
programa. Estes comandos são, genericamente, chamados de diretivas de
compilação. Estes comandos informam ao compilador C, basicamente, quais
bibliotecas devem ser anexadas ao programa executável e quais são as
constantes simbólicas usadas no programa.
#define
A diretiva #define pode ser usada para definir constantes.
Sintaxe:
#define <identificador> <valor>
Exemplo:
#define PI 3.14159
#undef
A diretiva #undef remove a mais recente definição criada com #define.
Exemplo:
#undef PI
/* cancela a definição de PI */
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
LINGUAGEM C
25
#include
A diretiva #include diz ao compilador para incluir na compilação do
programa outros arquivos. Geralmente, estes arquivos contêm bibliotecas de
funções ou rotinas do usuário.
Exemplo:
#include <stdio.h>
#include <stdlib.h>
#include “c:\fontes\salario.c”
void main(void)
{
int a, b;
}
Note que a instrução #include não é terminada com ponto-e-vírgula.
Qualquer linha de um programa em C que for iniciada com # não pode ter um
ponto e vírgula para terminá-la.
A tabela a seguir, apresenta as principais bibliotecas da linguagem C.
Arquivo
Descrição
stdio.h
Funções de entrada e saída
stdlib.h
Funções de uso genérico
string.h
Funções de tratamento de strings
math.h
Funções matemáticas
Prof. Marcelo Machado Cunha – Faculdade Pio Décimo
Download

LINGUAGEM C 1 Prof. Marcelo Machado Cunha – Faculdade Pio