C/Directrices para o preprocesador: Diferenzas entre revisións
Contido eliminado Contido engadido
mSen resumo de edición |
Revisión completa. Agora toda completar. |
||
Liña 1:
{{Navegador|
{| align="right" style="margin-left: 1em;"
O ''preprocesador'' de C identifica todas as liñas de código que comecen polo carácter <code>#</code> coma ordes para el. As principais ordes para o ''preprocesador'' son [[{{PAGENAME}}#include|<code>#include</code>]] e [[{{PAGENAME}}#define|<code>#define</code>]].▼
| __TOC__
|} <!-- Isto sitúa o índice á dereita -->
▲O ''preprocesador'' de C identifica todas as liñas de código que comecen polo carácter <code>#</code> coma ordes para el. As principais ordes para o ''preprocesador'' son [[
==<source lang=c enclose=none>#define</source>==
:''Prefírese o uso de variables [[{{BASEPAGENAME}}/Modificadores#const|constantes]] no seu lugar sempre que sexa posible.''
Esta orde permite realizar substitucións sistemáticas de texto ao longo dun código fonte. A súa sintaxe fundamental é a seguinte:
<source lang=c>
#define TEXTO SUBSTITUCIÓN
</source>▼
#define IVE 16L▼
Onde:
*<code>TEXTO</code> é o texto a buscar e
...▼
*<code>SUBSTITUCIÓN</code> é o texto que o vai substituír.
c = a+a*(IVE/100); // Substitúese IVE por 16 (tipo long)▼
...▼
Esta orde para o ''preprocesador'' permite, por exemplo, repetir un mesmo valor numérico como [[{{BASEPAGENAME}}/Constantes literais|constante]] varias veces ao longo dun mesmo código, e o máis importante, facilita a tarefa de cambiar dito valor en todo o código, reducíndoa a cambiar o valor no <source lang=c enclose=none>#define</source>. E en caso de utilizar palabras clave descritivas, permite asemade mellorar a comprensión do código fonte.
<source lang=c>▼
▲#define IVE 16L
// (o «L» é para especificar o tipo de dato, “long”, do «16»)
</source>
As palabras clave a utilizar cos <source lang=c enclose=none>#define</source> adoitan escribirse dun xeito que se evite calquera posible coincidencia accidental. Para iso adoitan escribirse completamente en maiúsculas, e comezar cunha barra baixa, «<code>_</code>».
==<
Esta orde permite establecer o que se coñece como un “grupo condicional”. Permite establecer que unha serie de instrucións só se empreguen finalmente no código fonte en caso de que unha palabra clave fose previamente definida. A súa sintaxe fundamental é a seguinte:
<source lang=c>
#ifdef
// Instrucións.
#endif
</source>
Os grupos condicionais poden aniñarse, pero de facerse ten que ser completamente. É dicir, o peche dun grupo condicional (<
Aínda que non se
▲Os grupos condicionais poden aniñarse, pero de facerse ten que ser completamente. É dicir, o peche dun grupo condicional (<code>#endif</code>) pecha o inicio de grupo condicional inmediatamente anterior (<code>#ifdef</code>). Tampouco se pode distribuír un grupo condicional en ficheiros separados.
Considérase unha boa práctica indicar cun [[{{BASEPAGENAME}}/Comentarios|comentario]] ao carón do <source lang=c enclose=none>#endif</source> cal é a clave que remata aí. Isto mellora a comprensión do código.
▲Aínda que non se defina a condición (<code>MACRO</code>), o ''preprocesador'' analizará sintacticamente as ordes do grupo condicional, polo que estas terán que ser en todo momento código C correcto.
==<source lang=c enclose=none>#ifndef</source>==
Esta orde é idéntica a [[#.23ifdef|<source lang=c enclose=none>#ifdef</source>]], pero o seu contido emprégase cando a <code>CLAVE</code> '''non''' se definiu previamente.
Cómpre botarlle unha ollada á lista de [[{{BASEPAGENAME}}/Macros estándar|''macros'' estándar]].▼
▲<source lang=c>
▲</source>
==<source lang=c enclose=none>#include</source>==
Esta orde para o ''precompilador'' utilízase para incluír no código fonte os [[{{BASEPAGENAME}}/Funcións#Ficheiro de cabeceira|ficheiros de cabeceira]] de [[{{BASEPAGENAME}}/Funcións#Bibliotecas de funcións|bibliotecas de funcións]]. A súa sintaxe dependerá de se o ficheiro de cabeceira en cuestión está no directorio de busca do compilador ─en cuxo caso só será necesario o nome do ficheiro─, ou noutro directorio ─en cuxo caso será necesaria a súa ruta absoluta ou relativa ao ficheiro co código fonte─. As súas sintaxes fundamentais son as seguintes:
<source lang=c>
// Biblioteca no directorio do compilador:
#include <ficheiro.h>
// Biblioteca noutro directorio:
#include "/ruta/ao/ficheiro.h"
</source>
==<
===Incluír bibliotecas de Windows===
Mediante a seguinte liña, substituíndo <code>biblioteca</code> polo nome da biblioteca en cuestión,
<source lang=c>
#pragma comment(lib, "biblioteca")
Liña 72 ⟶ 63:
==Véxase tamén==
▲
{{Navegador|
<!-- Categorías: -->
|