<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>nighto.net &#187; gcc</title>
	<atom:link href="http://nighto.net/tag/gcc/feed/" rel="self" type="application/rss+xml" />
	<link>http://nighto.net</link>
	<description>tecnologia, ciclismo e aleatoriedades afins</description>
	<lastBuildDate>Thu, 06 May 2010 10:57:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Programando em C no Linux</title>
		<link>http://nighto.net/programando-em-c-no-linux/</link>
		<comments>http://nighto.net/programando-em-c-no-linux/#comments</comments>
		<pubDate>Sat, 23 Aug 2008 22:46:49 +0000</pubDate>
		<dc:creator>Nighto</dc:creator>
				<category><![CDATA[Aleatoriedades]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://nighto.net/?p=84</guid>
		<description><![CDATA[Para quem quer começar a aprender a criar seus próprios programas no computador, uma das opções é a clássica linguagem C. Não entrarei no mérito de qual linguagem é melhor, ou aonde você poderá encontrar os melhores guias, tutoriais ou &#8230; <a href="http://nighto.net/programando-em-c-no-linux/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Para quem quer começar a aprender a criar seus próprios programas no computador, uma das opções é a clássica linguagem <strong>C</strong>. Não entrarei no mérito de qual linguagem é melhor, ou aonde você poderá encontrar os melhores guias, tutoriais ou livros. Tenho aqui os slides das aulas em duas partes: TP1 Parte 1 (<a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/tp2-revisao-tp1.odp">odp</a>, <a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/tp2-revisao-tp1.pdf">pdf</a>, <a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/tp2-revisao-tp1.pdf">ppt</a>) e Parte 2 (<a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/tp2-revisao2-tp1.odp">odp</a>, <a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/tp2-revisao2-tp1.pdf">pdf</a>, <a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/tp2-revisao2-tp1.pdf">ppt</a>). Os códigos abaixo são de minha autoria e livres para qualquer uso.</p>
<p>Você poderá criar seus programas em qualquer editor de texto simples (o gedit e o Kate são boas opções, pois já incluem destaque de sintaxe, isto é, o código fica colorido como os exemplos abaixo). Eu prefiro o Kate pois ele já inclui um terminal incluso:</p>
<p style="text-align: center;"><a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/kate.png"><img class="alignnone size-medium wp-image-87 aligncenter" title="kate" src="http://nighto.net/wordpress/wp-content/uploads/2008/08/kate-300x247.png" alt="" width="300" height="247" /></a></p>
<p>Para compilar os seus programas, você precisará de um compilador; usaremos o compilador C da <acronym title="GNU\'s Not Unix">GNU</acronym>, o GCC. Para instalá-lo no Ubuntu, clique <a href="apt://build-essential">aqui</a> ou entre com o seguinte comando num terminal: <kbd>sudo apt-get install build-essential</kbd>.</p>
<p>A estrutura básica de um programa em C é a seguinte (<a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/padrao.c">código fonte</a>, <a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/padrao">binário i386</a>):</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include&lt;stdio.h&gt;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Vejamos um Olá Mundo (<a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/olamundo.c">código fonte</a>, <a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/olamundo">binário i386</a>):</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include&lt;stdio.h&gt;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Olá Mundo<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Salvando o arquivo como olamundo.c, podemos compilá-lo com <kbd>gcc -o olamundo olamundo.c</kbd> e depois executá-lo com <kbd>./olamundo</kbd>.</p>
<p>Segue alguns exemplos de códigos que fiz enquanto revisava a matéria:</p>
<p>Conversor de centímetros para pés e polegadas (<a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/altura.c">código fonte</a>, <a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/altura">binário i386</a>):</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include&lt;stdio.h&gt;</span>
<span style="color: #808080; font-style: italic;">/* Ilustra printfs e defines. */</span>
&nbsp;
<span style="color: #339933;">#define FT 30.48</span>
<span style="color: #339933;">#define POL 2.54</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #993333;">int</span> f<span style="color: #339933;">;</span>
	<span style="color: #993333;">float</span> p<span style="color: #339933;">,</span> h<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Entre com a sua altura em centímetros: &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	scanf<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%f&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>h<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	f <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#40;</span>h <span style="color: #339933;">/</span> FT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	p <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>h <span style="color: #339933;">-</span> f <span style="color: #339933;">*</span> FT<span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> POL<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Sua altura é: %dft %.1fpol<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> f<span style="color: #339933;">,</span> p<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Fatorial (<a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/fatorial.c">código fonte</a>, <a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/fatorial">binário i386</a>):</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include&lt;stdio.h&gt;</span>
<span style="color: #808080; font-style: italic;">/* Calcula fatorial, ilustrando o uso de for. */</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #993333;">int</span> n<span style="color: #339933;">,</span> f<span style="color: #339933;">,</span> i<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">do</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Entre com um número inteiro positivo: &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		scanf<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span>n<span style="color: #339933;">&lt;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span>f<span style="color: #339933;">=</span>n<span style="color: #339933;">,</span> i<span style="color: #339933;">=</span>f<span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&gt;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">--</span><span style="color: #009900;">&#41;</span> f <span style="color: #339933;">*=</span> i<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d! = %d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> n<span style="color: #339933;">,</span> f<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Seqüência de números pares (<a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/pares.c">código fonte</a>, <a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/pares">binário i386</a>):</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include&lt;stdio.h&gt;</span>
<span style="color: #808080; font-style: italic;">/* Exemplifica o uso de continue dentro de um loop. */</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #993333;">int</span> n<span style="color: #339933;">,</span> i<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">do</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Entre com um número inteiro positivo: &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		scanf<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span>n<span style="color: #339933;">&lt;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;De 0 a %d os números pares são:&quot;</span><span style="color: #339933;">,</span> n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;=</span>n<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>i<span style="color: #339933;">%</span><span style="color:#800080;">2</span> <span style="color: #339933;">==</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">continue</span><span style="color: #339933;">;</span>
		<span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot; %d&quot;</span><span style="color: #339933;">,</span> i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;.<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Calculadora simples (<a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/calculadora.c">código fonte</a>, <a href="http://nighto.net/wordpress/wp-content/uploads/2008/08/calculadora">binário i386</a>):</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include&lt;stdio.h&gt;</span>
<span style="color: #808080; font-style: italic;">/* Exemplifica o uso do switch. */</span>
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #993333;">int</span> n1<span style="color: #339933;">,</span> n2<span style="color: #339933;">;</span>
	<span style="color: #993333;">char</span> op<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Entre com uma conta no formato <span style="color: #000099; font-weight: bold;">\&quot;</span>número operador número<span style="color: #000099; font-weight: bold;">\&quot;</span> (n [=-*/] n): &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	scanf<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d %c %d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>n1<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>op<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>n2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span>op<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">case</span> <span style="color: #ff0000;">'+'</span><span style="color: #339933;">:</span> <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d %c %d = %d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> n1<span style="color: #339933;">,</span> op<span style="color: #339933;">,</span> n2<span style="color: #339933;">,</span> n1<span style="color: #339933;">+</span>n2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">case</span> <span style="color: #ff0000;">'-'</span><span style="color: #339933;">:</span> <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d %c %d = %d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> n1<span style="color: #339933;">,</span> op<span style="color: #339933;">,</span> n2<span style="color: #339933;">,</span> n1<span style="color: #339933;">-</span>n2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">case</span> <span style="color: #ff0000;">'*'</span><span style="color: #339933;">:</span> <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d %c %d = %d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> n1<span style="color: #339933;">,</span> op<span style="color: #339933;">,</span> n2<span style="color: #339933;">,</span> n1<span style="color: #339933;">*</span>n2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">case</span> <span style="color: #ff0000;">'/'</span><span style="color: #339933;">:</span> <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d %c %d = %f<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> n1<span style="color: #339933;">,</span> op<span style="color: #339933;">,</span> n2<span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #993333;">float</span><span style="color: #009900;">&#41;</span>n1<span style="color: #339933;">/</span><span style="color: #009900;">&#40;</span><span style="color: #993333;">float</span><span style="color: #009900;">&#41;</span>n2<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">default</span><span style="color: #339933;">:</span>
			<span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot; Operador Inválido!<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://nighto.net/programando-em-c-no-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
