{"id":2677,"date":"2020-03-10T17:23:38","date_gmt":"2020-03-10T20:23:38","guid":{"rendered":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/?p=2677"},"modified":"2025-09-02T13:53:31","modified_gmt":"2025-09-02T16:53:31","slug":"melhorando-suas-aplicacoes-em-c","status":"publish","type":"post","link":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/2020\/03\/10\/melhorando-suas-aplicacoes-em-c","title":{"rendered":"Melhorando suas aplica\u00e7\u00f5es em C"},"content":{"rendered":"\n<section id=\"h.1093e512e686a5b_14\" class=\"yaqOZd\">\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.1093e512e686a5b_11\" class=\"hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd mGzaTb baZpAe\">\n<p class=\"zfr3Q\" dir=\"ltr\">A linguagem C \u00e9 muito utilizada em cursos de Inform\u00e1tica, principalmente nos primeiros semestres de curso. Muitas vezes nesse in\u00edcio nos sentimos com poucas ferramentas, ent\u00e3o aqui v\u00e3o algumas dicas de como melhorar seus c\u00f3digos e tamb\u00e9m o resultado final das suas aplica\u00e7\u00f5es.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.1093e512e686a5b_18\" class=\"yaqOZd\">\n<div class=\"yaqOZd IFuOkc\"><strong style=\"font-size: inherit\">1 \u2013 Biblioteca stdbool.h<\/strong><\/div>\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.1093e512e686a5b_15\" class=\"hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd mGzaTb baZpAe\">\n<p class=\"zfr3Q\" dir=\"ltr\">A biblioteca \u201cstdbool.h\u201d insere vari\u00e1veis do tipo bool, que podem assumir o valor de \u201ctrue\u201d ou \u201cfalse\u201d. Embora n\u00e3o seja uma essencial para a programa\u00e7\u00e3o, pois a linguagem C apresenta os conceitos de verdadeiro e falso como 1 ou 0, a biblioteca \u201cstdbool.h\u201d ir\u00e1 facilitar seu trabalho em separar o que \u00e9 definitivamente um n\u00famero e o que \u00e9 uma condi\u00e7\u00e3o de verdadeiro ou falso.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.37e72e213717139a_3\" class=\"yaqOZd\">\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-wNfPc purZT-AhqUyc-II5mzb pSzOP-AhqUyc-wNfPc JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.37e72e213717139a_0\" class=\"hJDwNd-AhqUyc-wNfPc pSzOP-AhqUyc-wNfPc jXK9ad D2fZ2 OjCsFc wHaque\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd baZpAe\">\n<div class=\"t3iYD\"><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-2730 size-full alignleft\" src=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC1.jpg\" alt=\"\" width=\"451\" height=\"304\" srcset=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC1.jpg 451w, https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC1-300x202.jpg 300w, https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC1-272x182.jpg 272w\" sizes=\"(max-width: 451px) 100vw, 451px\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-wNfPc purZT-AhqUyc-II5mzb pSzOP-AhqUyc-wNfPc JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.37e72e213717139a_4\" class=\"hJDwNd-AhqUyc-wNfPc pSzOP-AhqUyc-wNfPc jXK9ad D2fZ2 OjCsFc wHaque\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd baZpAe\">\n<div class=\"t3iYD\"><img decoding=\"async\" class=\"wp-image-2731 size-full alignright\" src=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC2.jpg\" alt=\"\" width=\"448\" height=\"305\" srcset=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC2.jpg 448w, https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC2-300x204.jpg 300w\" sizes=\"(max-width: 448px) 100vw, 448px\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-R6PoUb JNdkSc L6cTce-purZT L6cTce-pSzOP\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\u00a0<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.37e72e213717139a_10\" class=\"yaqOZd\">\n<div class=\"yaqOZd IFuOkc\">\u00a0<\/div>\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.37e72e213717139a_7\" class=\"hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd mGzaTb baZpAe\">\n<p dir=\"ltr\">\u00a0<\/p>\n<p dir=\"ltr\">\u00a0<\/p>\n<p dir=\"ltr\">\u00a0<\/p>\n<p dir=\"ltr\">\u00a0<\/p>\n<p dir=\"ltr\">\u00a0<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><strong>2 \u2013 Biblioteca iso646.h<\/strong><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">Aproveitando a onda de deixar os valores booleanos em um \u201cmais alto n\u00edvel\u201d, n\u00e3o posso deixar de comentar sobre a biblioteca \u201ciso646.h\u201d. Esta biblioteca permite utilizar os operadores l\u00f3gicos escrevendo-os por extenso, facilitando tanto o entendimento quanto a escrita do c\u00f3digo. Olhe abaixo um trecho de c\u00f3digo e uma tabela com os operadores l\u00f3gicos.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.37e72e213717139a_14\" class=\"yaqOZd\">\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-R6PoUb JNdkSc L6cTce-purZT L6cTce-pSzOP\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\u00a0<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-wNfPc purZT-AhqUyc-II5mzb pSzOP-AhqUyc-wNfPc JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.37e72e213717139a_11\" class=\"hJDwNd-AhqUyc-wNfPc pSzOP-AhqUyc-wNfPc jXK9ad D2fZ2 OjCsFc wHaque\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd baZpAe\">\n<div class=\"t3iYD\"><img decoding=\"async\" class=\"aligncenter wp-image-2732 size-full\" src=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC3.jpg\" alt=\"\" width=\"430\" height=\"315\" srcset=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC3.jpg 430w, https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC3-300x220.jpg 300w\" sizes=\"(max-width: 430px) 100vw, 430px\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-R6PoUb JNdkSc L6cTce-purZT L6cTce-pSzOP\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\u00a0<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-II5mzb purZT-AhqUyc-II5mzb pSzOP-AhqUyc-II5mzb JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.37e72e213717139a_15\" class=\"hJDwNd-AhqUyc-II5mzb pSzOP-AhqUyc-II5mzb jXK9ad D2fZ2 OjCsFc wHaque\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd baZpAe\">\n<div class=\"t3iYD\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2733 size-full\" src=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC4.png\" alt=\"\" width=\"221\" height=\"119\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-R6PoUb JNdkSc L6cTce-purZT L6cTce-pSzOP\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\u00a0<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.37e72e213717139a_23\" class=\"yaqOZd\">\n<div class=\"yaqOZd IFuOkc\"><strong style=\"font-size: inherit\">3 \u2013 Limpando o console com system(\u201ccls\u201d) ou system(\u201cclear\u201d)<\/strong><\/div>\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.37e72e213717139a_20\" class=\"hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd mGzaTb baZpAe\">\n<p class=\"zfr3Q\" dir=\"ltr\">Embora j\u00e1 seja um comando muito popular entre as pessoas que j\u00e1 programam na linguagem C, esse comando acaba sendo muito \u00fatil para quem est\u00e1 come\u00e7ando, devido ao fato de deixar no console apenas a informa\u00e7\u00e3o desejada, deixando os resultados dos seus programas muito mais interessantes.<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">A fun\u00e7\u00e3o \u201csystem( );\u201d faz parte da biblioteca \u201cstdlib.h\u201d, ela basicamente ir\u00e1 aplicar comandos no console\/terminal. O problema que enfrentamos \u00e9 que os comandos de limpar o console ser\u00e3o diferentes para Windows e sistemas Unix! Para isso precisaremos utilizar o comando \u201csystem(\u201ccls\u201d);\u201d para Windows e \u201csystem(\u201cclear\u201d);\u201d para sistemas Unix. Ent\u00e3o sempre saiba qual o sistema destino para a aplica\u00e7\u00e3o a ser desenvolvida. Mas caso queira superar esse problema, d\u00ea uma olhada no Item 5 deste artigo, sobre Diretivas de Compila\u00e7\u00e3o.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.37e72e213717139a_27\" class=\"yaqOZd\">\n<div class=\"yaqOZd IFuOkc\">\u00a0<\/div>\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-qWD73c purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc yYI8W \">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.37e72e213717139a_24\" class=\"hJDwNd-AhqUyc-qWD73c jXK9ad D2fZ2 OjCsFc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd baZpAe\">\n<div class=\"t3iYD\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2734 size-full\" src=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC5.png\" alt=\"\" width=\"577\" height=\"259\" srcset=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC5.png 577w, https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC5-300x135.png 300w\" sizes=\"(max-width: 577px) 100vw, 577px\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"oKdM2c\">\n<div id=\"h.37e72e213717139a_28\" class=\"hJDwNd-AhqUyc-qWD73c jXK9ad D2fZ2 wHaque QaN0Zc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd baZpAe\">\n<div class=\"t3iYD\"><br \/><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2735 size-full\" src=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC6.jpg\" alt=\"\" width=\"484\" height=\"292\" srcset=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC6.jpg 484w, https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC6-300x181.jpg 300w\" sizes=\"(max-width: 484px) 100vw, 484px\" \/><\/div>\n<div>\u00a0<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-qWD73c purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.37e72e213717139a_32\" class=\"hJDwNd-AhqUyc-qWD73c jXK9ad D2fZ2 OjCsFc wHaque\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd baZpAe\">\n<div class=\"t3iYD\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2737 size-full\" src=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC8.jpg\" alt=\"\" width=\"483\" height=\"330\" srcset=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC8.jpg 483w, https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC8-300x205.jpg 300w\" sizes=\"(max-width: 483px) 100vw, 483px\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.37e72e213717139a_38\" class=\"yaqOZd\">\n<div class=\"yaqOZd IFuOkc\">\u00a0<\/div>\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.37e72e213717139a_35\" class=\"hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd mGzaTb baZpAe\">\n<p class=\"zfr3Q\" dir=\"ltr\"><strong>4 \u2013 Fun\u00e7\u00e3o Sleep( ) ou usleep( )<\/strong><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">De maneira similar ao t\u00f3pico anterior, as fun\u00e7\u00f5es Sleep( ) e usleep( ), funcionam em sistemas operacionais diferentes, embora ambas apresentem a mesma funcionalidade: parar o tempo de execu\u00e7\u00e3o. Mas com uma quest\u00e3o a mais, elas pertencem a bibliotecas diferentes. E novamente ressalto a possibilidade da utiliza\u00e7\u00e3o de Diretivas de Compila\u00e7\u00e3o no t\u00f3pico seguinte, caso queira criar um c\u00f3digo que funcione em ambos os sistemas operacionais.<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">Dessa vez vamos falar de uma de cada vez, primeiramente a fun\u00e7\u00e3o Sleep( ), isso mesmo, a letra S \u00e9 mai\u00fascula, ela funciona apenas em Windows e pertence a biblioteca \u201cwindows.h\u201d, como par\u00e2metro para a fun\u00e7\u00e3o deve-se passar um valor inteiro referente \u00e0 quantidade de milissegundos que ir\u00e1 parar a execu\u00e7\u00e3o do programa. Logo, caso eu execute o comando Sleep(500); o programa ir\u00e1 parar a sua execu\u00e7\u00e3o durante meio segundo.<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">A outra fun\u00e7\u00e3o \u00e9 a usleep( ), funcionando em sistemas Unix, a fun\u00e7\u00e3o est\u00e1 contida na biblioteca \u201cunistd.h\u201d e, diferente da fun\u00e7\u00e3o anterior, o valor inteiro informado como par\u00e2metro da fun\u00e7\u00e3o indicar\u00e1 em microssegundos o tempo a ser parada a execu\u00e7\u00e3o do programa, ent\u00e3o se atente sempre a convers\u00e3o de unidades. Portanto, caso eu execute usleep(500 *1000); o programa ir\u00e1 novamente parar a execu\u00e7\u00e3o durante meio segundo, note que realizei uma multiplica\u00e7\u00e3o por 1000 para trabalhar com o tempo de micro para milissegundos.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.37e72e213717139a_84\" class=\"yaqOZd\">\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-c5RTEf JNdkSc L6cTce-purZT L6cTce-pSzOP\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\u00a0<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-qWD73c purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.37e72e213717139a_81\" class=\"hJDwNd-AhqUyc-qWD73c jXK9ad D2fZ2 OjCsFc wHaque\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd baZpAe\">\n<div class=\"t3iYD\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2738 size-full\" src=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC9.jpg\" alt=\"\" width=\"396\" height=\"880\" srcset=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC9.jpg 396w, https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC9-135x300.jpg 135w\" sizes=\"(max-width: 396px) 100vw, 396px\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-c5RTEf JNdkSc L6cTce-purZT L6cTce-pSzOP\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\u00a0<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.37e72e213717139a_45\" class=\"yaqOZd\">\n<div class=\"yaqOZd IFuOkc\">\u00a0<\/div>\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-II5mzb purZT-AhqUyc-II5mzb pSzOP-AhqUyc-II5mzb JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.37e72e213717139a_39\" class=\"hJDwNd-AhqUyc-II5mzb pSzOP-AhqUyc-II5mzb jXK9ad D2fZ2 OjCsFc wHaque\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd baZpAe\">\n<div class=\"t3iYD\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2739 size-full\" src=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC10.gif\" alt=\"\" width=\"677\" height=\"343\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-OwsYgb purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc yYI8W \">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.37e72e213717139a_42\" class=\"hJDwNd-AhqUyc-OwsYgb jXK9ad D2fZ2 OjCsFc GNzUNc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd mGzaTb baZpAe\">\n<p class=\"zfr3Q\" dir=\"ltr\">Al\u00e9m do mais, a combina\u00e7\u00e3o das fun\u00e7\u00f5es printf, Sleep e system(\u201ccls\u201d), ou suas respectivas vers\u00f5es para Linux, permite a cria\u00e7\u00e3o de anima\u00e7\u00f5es no terminal. Veja o exemplo.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"oKdM2c\">\n<div id=\"h.37e72e213717139a_88\" class=\"hJDwNd-AhqUyc-OwsYgb jXK9ad D2fZ2 wHaque\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd baZpAe\">\n<div class=\"t3iYD\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2740 size-full\" src=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC11.jpg\" alt=\"\" width=\"466\" height=\"391\" srcset=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC11.jpg 466w, https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC11-300x252.jpg 300w\" sizes=\"(max-width: 466px) 100vw, 466px\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.37e72e213717139a_52\" class=\"yaqOZd\">\n<div class=\"yaqOZd IFuOkc\">\u00a0<\/div>\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.37e72e213717139a_49\" class=\"hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd mGzaTb baZpAe\">\n<p class=\"zfr3Q\" dir=\"ltr\"><strong>5 \u2013 Diretivas de Compila\u00e7\u00e3o<\/strong><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">Nos itens anteriores foi falado um pouco sobre o uso de diferentes c\u00f3digos para diferentes sistemas operacionais, mas como driblar essa barreira? Como fazer um c\u00f3digo que possa ser usado em ambos os sistemas? Simples, basta usarmos as diretivas de compila\u00e7\u00e3o.<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">Voc\u00ea j\u00e1 deve ter se perguntado em algum momento ao iniciar a programa\u00e7\u00e3o em C o porqu\u00ea de os includes e os defines terem uma sintaxe, ou ainda se voc\u00ea j\u00e1 estiver avan\u00e7ado criando novos projetos, o porqu\u00ea de existirem alguns itens nos headers. Essas s\u00e3o as diretivas de compila\u00e7\u00e3o, n\u00e3o vamos entrar em muitos detalhes, vamos utilizar apenas a parte b\u00e1sica.<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">Primeiro vamos entender basicamente que as diretivas de compila\u00e7\u00e3o \u00e9 tudo que ir\u00e1 rodar antes do c\u00f3digo, ou seja, todas as inclus\u00f5es de bibliotecas, defini\u00e7\u00f5es de constantes, nessas diretivas n\u00e3o podemos utilizar vari\u00e1veis, mas podemos fazer testes l\u00f3gicos. Veja o exemplo abaixo, que criamos uma fun\u00e7\u00e3o para gerenciar\u00a0as fun\u00e7\u00f5es de sleep:<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.37e72e213717139a_56\" class=\"yaqOZd\">\n<div class=\"yaqOZd IFuOkc\">\u00a0<\/div>\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.37e72e213717139a_53\" class=\"hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd mGzaTb baZpAe\">\n<p class=\"zfr3Q\" dir=\"ltr\">Nessa fun\u00e7\u00e3o temos a inclus\u00e3o das diretivas de #ifdef que funciona da mesma maneira que um if, por\u00e9m chega a constante (defini\u00e7\u00e3o) do sistema operacional e assim por diante, repare que existe a necessidade do uso do #endif uma vez que n\u00e3o existem chaves para delimitar o fim do c\u00f3digo em cada bloco. E repare que o uso \u00e9 feito duas vezes, dentro e fora da fun\u00e7\u00e3o em quest\u00e3o.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.37e72e213717139a_95\" class=\"yaqOZd\">\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-c5RTEf JNdkSc L6cTce-purZT L6cTce-pSzOP\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\u00a0<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-qWD73c purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.37e72e213717139a_90\" class=\"hJDwNd-AhqUyc-qWD73c jXK9ad D2fZ2 OjCsFc wHaque\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd baZpAe\">\n<div class=\"t3iYD\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2741 size-full\" src=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC12.jpg\" alt=\"\" width=\"400\" height=\"358\" srcset=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC12.jpg 400w, https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/aplicacoesC12-300x269.jpg 300w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-c5RTEf JNdkSc L6cTce-purZT L6cTce-pSzOP\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\u00a0<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.37e72e213717139a_63\" class=\"yaqOZd\">\n<div class=\"yaqOZd IFuOkc\">\u00a0<\/div>\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.37e72e213717139a_60\" class=\"hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd mGzaTb baZpAe\">\n<p class=\"zfr3Q\" dir=\"ltr\">Veja esse outro exemplo, onde aplicamos a mesma ideia dentro de uma fun\u00e7\u00e3o chamada \u201cclear_screen\u201d onde direcionamos a fun\u00e7\u00e3o a ser utilizada de acordo com o sistema operacional.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.37e72e213717139a_94\" class=\"yaqOZd\">\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-II5mzb JNdkSc L6cTce-purZT L6cTce-pSzOP\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\u00a0<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.37e72e213717139a_70\" class=\"yaqOZd\">\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.37e72e213717139a_67\" class=\"hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd mGzaTb baZpAe\">\n<p class=\"zfr3Q\" dir=\"ltr\">Fontes:<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><a class=\"XqQF9c\" href=\"http:\/\/www.google.com\/url?q=http%3A%2F%2Fcplusplus.com%2Fforum%2Fgeneral%2F246274%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNHPB5pykQrtSb_ol7utbpbU2I-1Ew\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/cplusplus.com\/forum\/general\/246274\/<\/a><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><a class=\"XqQF9c\" href=\"https:\/\/www.google.com\/url?q=https%3A%2F%2Fwww.cplusplus.com%2Freference%2Fclibrary%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGgiDGnJaSPAabH_1LgY7VURGRbBw\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.cplusplus.com\/reference\/clibrary\/<\/a><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><a class=\"XqQF9c\" href=\"https:\/\/www.google.com\/url?q=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fwin32%2Fdirect3dhlsl%2Fdx-graphics-hlsl-appendix-pre-ifdef&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNEOaQJxkxirsb2V2Bk_YQB7kwkCdg\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/docs.microsoft.com\/en-us\/windows\/win32\/direct3dhlsl\/dx-graphics-hlsl-appendix-pre-ifdef<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>A linguagem C \u00e9 muito utilizada em cursos de Inform\u00e1tica, principalmente nos primeiros semestres de curso. Muitas vezes nesse in\u00edcio nos sentimos com poucas ferramentas, ent\u00e3o aqui v\u00e3o algumas dicas de como melhorar seus c\u00f3digos e tamb\u00e9m o resultado final das suas aplica\u00e7\u00f5es. 1 \u2013 Biblioteca stdbool.h A biblioteca \u201cstdbool.h\u201d insere vari\u00e1veis do tipo bool, [&hellip;]<\/p>\n","protected":false},"author":2948,"featured_media":2672,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[124,112],"tags":[74,149],"class_list":["post-2677","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-destaques","category-redacao","tag-linguagem-de-programacao","tag-redacao"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/posts\/2677","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/users\/2948"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/comments?post=2677"}],"version-history":[{"count":0,"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/posts\/2677\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/media\/2672"}],"wp:attachment":[{"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/media?parent=2677"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/categories?post=2677"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/tags?post=2677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}