Raphael Augusto

Coisas de quem é apaixonado por Computação

Posts com Tag ‘gcc’

Diretivas de compilação para o GCC

Publicado por raphaaugusto em 05/09/2009

gcc_lg

Hoje me deparei com um problema (coisa de iniciante…): como fazer um programa em C que conseguisse saber se está rodando em windows, linux ou outro SO, sem precisar mudar o código?

Se você pensou “Pra quê eu vou querer fazer isso?”, veja só:

Imagine que seu programa trabalha com arquivos. Se você fosse acessar um arquivo no windows, seria algo como “c:\meuprograma\dados\arquivo.xml”. Agora, se fosse no linux, seria algo como “/home/raphael/arquivo.xml”.

E agora? Como seu programa pode tratar as duas formas?

Pesquisando um pouco, descobri que é muito simples. Precisa apenas colocar o codigo específico para cada SO num bloco como o mostrado abaixo:

#ifdef __linux__
//comando
#endif

Veja outro exemplo abaixo:

#include <stdio.h>

int main(){

#ifdef __linux__
printf(“estou no LINUX”);
#endif

#ifdef __WIN32__
printf(“estou no WINDOWS”);
#endif

return 0;
}

Pode testar esse código compilando no Windows e Linux, e veja o resultado.

Qqer coisa, deixem comentário!!

Enviado em C, Programação | Tagged: , , | Deixar um comentário »