C/Directrices para o preprocesador: Diferenzas entre revisións
Contido eliminado Contido engadido
m →ifdef: unha --> un |
Engado #define, ordeno os apartados alfabéticamente e categorizo. |
||
Liña 1:
{{Navegador|Estrutura e estilo|Funcións}}
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
==<code>
Esta orde define o valor que terá un texto no código. Isto é: lle di ao ''precompilador'' que cada vez que se atope no código cun "''macro''" que nós establezamos, o substitúa por un valor que nós establezamos. Isto permítenos repetir un valor varias veces ao longo do 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 <code>#define</code>.
Esta orde para o ''precompilador'' utilízase para dúas cousas: ben para indicarlle ao ''precompilador'' o nome do ficheiro de cabeceira que contén os [[{{BASEPAGENAME}}/Funcións#Declaración dunha función|prototipos]] das funcións utilizadas no programa que forman parte da colección de bibliotecas do compilador, ou ben cargar un ficheiro de código externo que conteña a [[{{BASEPAGENAME}}/Funcións#Definición dunha función|definición]] dunha ou máis funcións ás que se [[{{BASEPAGENAME}}/Funcións#Chamada a unha función|chama]] no programa.▼
Tamén pode mellorar a comprensión do código, mediante o uso de ''macros'' descritivos, coma a primeira orde do seguinte exemplo:
<source lang=c>
// Podemos especificar o tipo de dato que terá en todo o código o valor numérico:
#include <ficheiro.h>▼
#define IVE 16L
</source>▼
// Asemade, podemos asignar unha cadea en lugar dun valor:
Esta orde inclúe o ficheiro de cabeceira <code>ficheiro.h</code>, e o ''precompilador'' buscará dito ficheiro no directorio por defecto de ficheiros de cabeceira do compilador.▼
#define AVANZA "Preme a frecha esquerda"
int main(void){
<source lang=c>▼
...
#include "/ruta/ao/ficheiro.h"▼
c = a+a*(IVE/100); // Substitúese IVE por 16 (tipo long)
...
printf(AVANZA); // Substitúese AVANZA por "Preme a frecha esquerda"
}
</source>
Esta outra orde inclúe no código o contido dun ficheiro externo que se supón contén as definicións dunha serie de funcións que se utilizarán no código.▼
Xeralmente, os ''macros'' escríbense en maiúsculas, para que outros programadores os recoñezan como tales. De todos xeitos, sempre que sexa posible, convén usar o [[{{PAGENAME}}#const|seguinte método]], que se ben está máis limitado nalgúns aspectos ten menor problemática en xeral.
==<code>ifdef</code>==
Liña 43 ⟶ 51:
Un uso habitual deste tipo de directriz para o ''preprocesador'' consiste no uso de certas ordes unicamente a primeira vez que se [[{{PAGENAME}}#include|inclúe]] un ficheiro de cabeceira.
==<code>include</code>==
▲Esta orde para o ''precompilador'' utilízase para dúas cousas: ben para indicarlle ao ''precompilador'' o nome do ficheiro de cabeceira que contén os [[{{BASEPAGENAME}}/Funcións#Declaración dunha función|prototipos]] das funcións utilizadas no programa que forman parte da colección de bibliotecas do compilador, ou ben cargar un ficheiro de código externo que conteña a [[{{BASEPAGENAME}}/Funcións#Definición dunha función|definición]] dunha ou máis funcións ás que se [[{{BASEPAGENAME}}/Funcións#Chamada a unha función|chama]] no programa.
▲<source lang=c>
▲#include <ficheiro.h>
▲</source>
▲Esta orde inclúe o ficheiro de cabeceira <code>ficheiro.h</code>, e o ''precompilador'' buscará dito ficheiro no directorio por defecto de ficheiros de cabeceira do compilador.
<source lang=c>
▲#include "/ruta/ao/ficheiro.h"
</source>
▲Esta outra orde inclúe no código o contido dun ficheiro externo que se supón contén as definicións dunha serie de funcións que se utilizarán no código.
==<code>pragma</code>==
Liña 57 ⟶ 78:
{{Navegador|Estrutura e estilo|Funcións}}
<!-- Categorías: -->
[[Categoría:C|Preprocesador]]
|