28
Trilha C/C++ Wanderley Caloni Sócio-Desenvolvedor da

Entendendo a Compilação

Embed Size (px)

Citation preview

Page 1: Entendendo a Compilação

Trilha C/C++

Wanderley CaloniSócio-Desenvolvedor da

Page 2: Entendendo a Compilação

Entendendo a Compilação

Page 3: Entendendo a Compilação

Onde sou? Quem estou?

• Segurança da Informação– Sistema de Controle de Usuários e Aplicações– Criptografia de Discos

Page 4: Entendendo a Compilação

Onde sou? Quem estou?

• Análise de Trojans– Engenharia Reversa– Crash Dump Analysis

Page 5: Entendendo a Compilação

Onde sou? Quem estou?

• Mercado Financeiro– Alto Desempenho– Análise de Risco

Page 6: Entendendo a Compilação

Onde sou? Quem estou?

• Mercado Financeiro– Alto Desempenho– Algoritmos– Cotações– Mobile

Page 7: Entendendo a Compilação

Onde sou? Quem estou?

Page 8: Entendendo a Compilação

Onde sou? Quem estou?

Page 9: Entendendo a Compilação

Onde sou? Quem estou?

Page 10: Entendendo a Compilação

Vamos ao que interessa?

Page 11: Entendendo a Compilação

Three Easy Steps

• Preprocessamento• Compilação• Linkedição

Page 12: Entendendo a Compilação

#include <Preprocessamento>

• Não faz parte da linguagem/sintaxe• Uso excessivo desencorajado• Substituição de arquivos e símbolos• #• #• #• ...

Page 13: Entendendo a Compilação

#include <Preprocessamento>

Page 14: Entendendo a Compilação

#include <Preprocessamento>

Page 15: Entendendo a Compilação

#include <Preprocessamento>

Page 16: Entendendo a Compilação

#include <Preprocessamento>

Page 17: Entendendo a Compilação

#include <Preprocessamento>

Page 18: Entendendo a Compilação

#include <Preprocessamento>

Page 19: Entendendo a Compilação

#include <Preprocessamento>

stdio.h header.h

source.c

#include

Preprocessadorstdio.h

header.hsource.c

Page 20: Entendendo a Compilação

#include <Preprocessamento>

Page 21: Entendendo a Compilação

Compilação

int cannotConvertError(const char* message) { int ret = message[0]; return ret;}

int ret = cannotConvertError(3);

error C2664: 'cannotConvertError' : cannot convert parameter 1 from 'int' to 'const char *'

Page 22: Entendendo a Compilação

Compilação

if( test() ) something; something-else;else else-something;

error C2181: illegal else without matching if

Page 23: Entendendo a Compilação

Compilação

while( (x < z) && func(x, func2(y) != 2 ){ something;}

error C2143: syntax error : missing ')' before '{'

Page 24: Entendendo a Compilação

Compilação

Page 25: Entendendo a Compilação

Linkedição

Page 26: Entendendo a Compilação

Linkedição

Page 27: Entendendo a Compilação

Linkedição

libc.lib boost.lib

source.obj

Linker project.exe

Page 28: Entendendo a Compilação

Perguntas?

[email protected]

saite

e-mail