Trilha C/C++
Wanderley Caloni
Sócio-Desenvolvedor da
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
Onde sou? Quem estou?
• Análise de Trojans
– Engenharia Reversa
– Crash Dump Analysis
Onde sou? Quem estou?
• Mercado Financeiro
– Alto Desempenho
– Análise de Risco
Onde sou? Quem estou?
• Mercado Financeiro
– Alto Desempenho
– Algoritmos
– Cotações
– Mobile
Onde sou? Quem estou?
Onde sou? Quem estou?
Onde sou? Quem estou?
Vamos ao que interessa?
Three Easy Steps
• Preprocessamento
• Compilação
• Linkedição
#include <Preprocessamento>
• Não faz parte da linguagem/sintaxe
• Uso excessivo desencorajado
• Substituição de arquivos ...
#include <Preprocessamento>
#include <Preprocessamento>
#include <Preprocessamento>
#include <Preprocessamento>
#include <Preprocessamento>
#include <Preprocessamento>
#include <Preprocessamento>
stdio.h header.h
source.c
#include
Preprocessador
stdio.h
header.h
source.c
#include <Preprocessamento>
Compilação
int cannotConvertError(const char* message)
{
int ret = message[0]; return ret;
}
int ret = cannotConvertError(...
Compilação
if( test() )
something;
something-else;
else
else-something;
error C2181: illegal else without matching if
Compilação
while( (x < z) && func(x, func2(y) != 2 )
{
something;
}
error C2143: syntax error : missing ')' before '{'
Compilação
Linkedição
Linkedição
Linkedição
libc.lib boost.lib
source.obj
Linker project.exe
Perguntas?
wanderley@caloni.com.br
twitter
saite
e-mail
Próximos SlideShares
Carregando em…5
×

Entendendo a Compilação

927 visualizações

Publicada em

Palestra ministrada no TDC 2014 SP.

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
927
No SlideShare
0
A partir de incorporações
0
Número de incorporações
559
Ações
Compartilhamentos
0
Downloads
11
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Entendendo a Compilação

  1. 1. Trilha C/C++ Wanderley Caloni Sócio-Desenvolvedor da
  2. 2. Entendendo a Compilação
  3. 3. Onde sou? Quem estou? • Segurança da Informação – Sistema de Controle de Usuários e Aplicações – Criptografia de Discos
  4. 4. Onde sou? Quem estou? • Análise de Trojans – Engenharia Reversa – Crash Dump Analysis
  5. 5. Onde sou? Quem estou? • Mercado Financeiro – Alto Desempenho – Análise de Risco
  6. 6. Onde sou? Quem estou? • Mercado Financeiro – Alto Desempenho – Algoritmos – Cotações – Mobile
  7. 7. Onde sou? Quem estou?
  8. 8. Onde sou? Quem estou?
  9. 9. Onde sou? Quem estou?
  10. 10. Vamos ao que interessa?
  11. 11. Three Easy Steps • Preprocessamento • Compilação • Linkedição
  12. 12. #include <Preprocessamento> • Não faz parte da linguagem/sintaxe • Uso excessivo desencorajado • Substituição de arquivos e símbolos • # • # • # • ...
  13. 13. #include <Preprocessamento>
  14. 14. #include <Preprocessamento>
  15. 15. #include <Preprocessamento>
  16. 16. #include <Preprocessamento>
  17. 17. #include <Preprocessamento>
  18. 18. #include <Preprocessamento>
  19. 19. #include <Preprocessamento> stdio.h header.h source.c #include Preprocessador stdio.h header.h source.c
  20. 20. #include <Preprocessamento>
  21. 21. 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 *'
  22. 22. Compilação if( test() ) something; something-else; else else-something; error C2181: illegal else without matching if
  23. 23. Compilação while( (x < z) && func(x, func2(y) != 2 ) { something; } error C2143: syntax error : missing ')' before '{'
  24. 24. Compilação
  25. 25. Linkedição
  26. 26. Linkedição
  27. 27. Linkedição libc.lib boost.lib source.obj Linker project.exe
  28. 28. Perguntas? wanderley@caloni.com.br twitter saite e-mail

×