a linguagem C e multiplaforma porem existe comandos e bibliotecas exclusiva do sistema operacional ou do copilador para deixar o seu programa em C/C++ compativel em ambas plataforma tem q usar ambas biblioteca, mais se usar uma biblioteca q nao existe no copilador ou comando q o sistema nao conhece ele nao vai copilar se copilar vai dar erro na hora de executar, para evitar isso se usa macro macro é uma diretiva de pre-processamento q permite fazer escolhas antes de copilar, veja um exemplo de programa para windows
na source acima quando copilar no windows na parte system("cls") vai limpar a tela entao so vai exibir o texto 315, se vc tenta copilar ele no linux vai copilar pq a funçao system e valida soq o comando cls nao é pq é um comando do terminal do windows e nao do linux, entao quando executar o programa vai exibir o lol vai mostrar q comando nao é valido e 315 (agente tinha usado o cls para limpar a tela entao essa source so serve para windows) no linux a mesma source seria assim
se vc copilar a source acima no windows ela vai acontecer o mesmo so q o comando clear nao é valido para windows, para nao precisar ficar criando duas source uma para windows e outra para linux basta criar macro e colocar uma condiçao, para criar macro e igual criar uma constante basta usar # para o copilador entender q para ele pre-processar antes de tudo depois coloca define para criar uma constante depois o tipo de dados q essa constante vai ter por exemplo
no exemplo acima eu defini minha macro com o nome OS e ela recebe o valor 1, basta eu mudar aquele valor antes de copilar o programa e pronto (1-windows 2-linux), agora vamos criar a condiçao para isso usando #if isso é uma condiçao de pre-processamento, para usar é facil basta usar #if e condiçao por exemplo
no comando acima indica q se macro OS for igual a 1 ele faz aquilo, para terminar a condiçao o função é
veja um exemplo dos dois programa anterior com essa condiçao
pronto o programa ta compativel com windows so mudar a macro e ele fica compativel com linux e vice-versa, existe um outro geito mais facil porem vou deixar para outro tutorial XD
by hacker fts315
- Código:
//by hacker fts315
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
printf("lol");
system("cls"); //comando do windows
printf("315");
return 0;
}
na source acima quando copilar no windows na parte system("cls") vai limpar a tela entao so vai exibir o texto 315, se vc tenta copilar ele no linux vai copilar pq a funçao system e valida soq o comando cls nao é pq é um comando do terminal do windows e nao do linux, entao quando executar o programa vai exibir o lol vai mostrar q comando nao é valido e 315 (agente tinha usado o cls para limpar a tela entao essa source so serve para windows) no linux a mesma source seria assim
- Código:
//by hacker fts315
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
printf("lol");
system("clear"); //comando do linux
printf("315");
return 0;
}
se vc copilar a source acima no windows ela vai acontecer o mesmo so q o comando clear nao é valido para windows, para nao precisar ficar criando duas source uma para windows e outra para linux basta criar macro e colocar uma condiçao, para criar macro e igual criar uma constante basta usar # para o copilador entender q para ele pre-processar antes de tudo depois coloca define para criar uma constante depois o tipo de dados q essa constante vai ter por exemplo
#define OS 1
no exemplo acima eu defini minha macro com o nome OS e ela recebe o valor 1, basta eu mudar aquele valor antes de copilar o programa e pronto (1-windows 2-linux), agora vamos criar a condiçao para isso usando #if isso é uma condiçao de pre-processamento, para usar é facil basta usar #if e condiçao por exemplo
#if OS == 1
no comando acima indica q se macro OS for igual a 1 ele faz aquilo, para terminar a condiçao o função é
#endif
veja um exemplo dos dois programa anterior com essa condiçao
- Código:
//by hacker fts315
#include <stdio.h>
#include <stdlib.h>
#define OS 1 //1-windows 2-linux
int main(void)
{
printf("lol");
#if OS == 1
system("cls"); //comando do windows
#endif
#if OS == 2
system("clear"); //comando do linux
#endif
printf("315");
return 0;
}
pronto o programa ta compativel com windows so mudar a macro e ele fica compativel com linux e vice-versa, existe um outro geito mais facil porem vou deixar para outro tutorial XD
by hacker fts315