Академический Документы
Профессиональный Документы
Культура Документы
Desenvolvimento
Felipe FK Kellermann - @felipek
Nyvra
C com pitadas de
Objective-C
Sobre Objective-C e C
Formato: .h e .c, #include (pr-processador)
Tipos primitivos e operaes
Funes e Blocos (#include, etc)
Expresses booleanas e fluxos / condicionais
Tipos com struct e enum, definies typedef
Ponteiros
Strings C e formatadores
Sobre C e
Objective-C
Pergunta: Precisa aprender C antes de Objective-C?
Resposta: Objective-C C!
A linguagem Objective-C foi concebida como um
super-conjunto estrito da linguagem C. Significa que
qualquer programa C um programa Objective-C
struct produto p;
p.codigo = 10;
p.peso = 2.25;
Tipos struct, enum
O enum facilita a leitura atravs de constantes
Na prtica, trata-se apenas de um int com nomes
As constantes podem ter valores definidos ( comum
o uso de definies/manipulaes bitwise em enums)
enum
{
BEBIDA,
CARNE,
FRUTA
} tipo_produto;
produto_t p;
p.codigo = 42;
p.peso = 1.25;
Exemplo
Struct, Enum, Typedef
Criar uma Struct Tamanho (largura e altura), um
Enum Perfil (aluno e professor) e um Typedef
para Tamanho e Perfil
Arrays
Os assuntos arrays e ponteiros esto relacionados
Em C (e Objective-C) um array nativo de um tipo
Uso da sintaxe de acesso de notao []
Existiro arrays [] Objective-C no 4.4!
float precos[10];
precos[0] = 1.25;
precos[9] = 1.50;
// Quinto valor.
quinto = precos[4];
// Acesso invlido!
precos[10] = 2.30;
Ponteiros
Uma varivel ponteiro guarda referncia de memria
Um ponteiro tem sempre o mesmo tamanho
Tamanho suficiente para armazenar um endereo
Notao * define/acessa ponteiro, & pega endereo
// Varivel normal.
int x = 10;
int x = 10;
int y = 12;
troca_valores(&x, &y);
Ponteiros
Ponteiros void * armazenam qualquer ponteiro
(esse tipo de coisa possvel pois qualquer ponteiro
tem o mesmo tamanho em um computador)
O ponteiro NULL especial, ponteiro invlido
Memria de x
int x = 30;
int *y = &x; 30 *y
int *z = &x;
*z
Strings C
Uma string no um tipo primitivo
Em C uma string um array de chars terminado por
um delimitador \0 (conhecido como NUL-byte)
Diferena importante: e
Toda a manipulao feita por funes
printf(Uma string qualquer\n);
%d int (inteiro)