quinta-feira, 4 de outubro de 2012

Funções inline em C++

O que são funções inline e para que servem.

Quando declaramos uma função como inline o compilador troca a chamada dessa função pelo código  atual da própria. Temos aqui um ganho de tempo já que chamadas de função demoram mais do que escrever todo o código da mesma. Apesar do ganho de tempo temos um aumento no tamanho do programa.

Como declarar e utilizar uma função inline.

Para declarar uma função como sendo inline basta somente acrescentar a palavra chave inline na declaração da mesma. Utilizamos uma função inline da mesma forma que utilizamos uma função normal. Segue abaixo um exemplo.

#include <iostream>

using namespace std;

inline void hello_inline();

int main() {
    hello_inline();

    return 0;
}

inline void hello_inline() {
    cout << "Hello inline!!" << endl;
}

Funções inline são muito boas para economizar, porém, não devemos utilizar as mesmas de qualquer forma, somente funções pequenas e que são utilizadas constantemente devem ser declaradas como inline. É importante observar que essa conversão não é garantida pois o compilador pode decidir não tratar uma função inline como tal.

terça-feira, 10 de julho de 2012

wprogram.h not found. Problemas com Arduino

 Recentemente estive trabalhando em uma aplicação em Arduino que utilizava uma biblioteca com funções para sensores ultrassônicos. Ao tentar compilar a minha aplicação me deparei com a seguinte mensagem de erro:
error: WProgram.h: No such file or directory
 Obviamente recorri ao google para tentar encontrar uma solução para o problema. Descobri que houve uma mudança no nome de uma das bibliotecas utilizadas pelo Arduino. O nome dessa biblioteca mudou de WProgram.h para Arduino.h. Assim, para resolver o problema bastou substituir WProgram.h para Arduino.h na biblioteca de ultrassom que eu estava usando. Pesquisei um pouco mais encontrei a forma mais eficiente e segura de fazer essa modificação. Simplesmente substitui WProgram.h pelo código abaixo. 

#if defined(ARDUINO) && ARDUINO >= 100 
#include "Arduino.h" 
#else 
#include "WProgram.h" 
#endif

 Esse código verificará a versão do seu Arduino e escolherá a biblioteca certa para a sua aplicação. Pronto! Feito essa modificação a minha aplicação compilou sem problemas. Obs: essas modificações foram testadas no Ubuntu mas devem funcionar sem problemas no windows.

terça-feira, 3 de julho de 2012

O início

"Metaverso é a terminologia utilizada para indicar um tipo de mundo virtual que tenta replicar a realidade através de dispositivos digitais, não necessariamente de imersão, ou seja, que desloquem os sentidos de uma pessoa para esta realidade virtual."