C/Funcións: Diferenzas entre revisións

Contido eliminado Contido engadido
Gallaecio (conversa | contribucións)
Gallaecio (conversa | contribucións)
Sen resumo de edición
Liña 5:
*Se ten varias funcións (aínda que estas estean en ficheiros externos), o proceso ou tarefa subdivídese nesas funcións.
 
As funcións en C, salvo a principal (<code>main</code>), aparecen no código cando menos tres veces: na declaracióndefinición, na definicióndeclaración e na chamada.
 
==Declaración dunha función==
A declaración ou prototipo dunha función precísase para que cando o compilador chegue á chamada dunha función antes de chegar á definición da mesma, este xa saiba da súa existencia e coñeza:
*A cantidade de argumentos que ten que recibir e o seu tipo de dato.
*O tipo de dato que devolverá a función.
*O identificador da función.
 
A declaración dunha función ten que aparecer entre as [[{{BASEPAGENAME}}/Directrices para o proprocesador|directrices para o ''preprocesador'']] e a [[{{PAGENAME}}#Definición dunha función|definición]] da función principal. É dicir, comparten espazo coas declaracións de [[{{BASEPAGENAME}}/Variables#Variables globais|variables globais]].
 
As partes de que consta unha función son ben similares ás da cabeceira dunha [[{{PAGENAME}}#Definición dunha función|función]]. De feito, poden ser iguais, salvo porque non fai falla especificar o nome que terán as variables nas que se garden os argumentos fornecidos á función na [[{{PAGENAME}}#Chamada a unha función|chamada]].
 
Velaquí uns exemplos de declaracións dunha función:
<source lang=c>
int IdentificadorDaFuncion1(int parametro1, float parametro2, float parametro3) // Esta leva os identificadores das variables que se han usar na función
int IdentificadorDaFuncion2(double, double) // Esta non, simplemente leva os tipos de datos que vai recibir na chamada
</source>
 
==Definición dunha función==
A definición de unha función é a función en si mesma. É un algoritmo que pode recibir un valor, varios valores ou mesmo ningún valor, e que sempre devolve un valor. Consta dunha serie de sentencias que rematan coa devolución dun valor (<code>return</code>).
 
A definición dunha función consta de dúas partes ben diferenciadas:
*Cabeceira: identificador da función e tipo de datos de entrada e saída.
Liña 39 ⟶ 25:
 
Na terceira parte, salvo para o caso en que non se reciban datos (<code>void</code>), os tipos de datos deben estar ligados ao nome dunha variable que terá "xurisdición" dentro do bloque da función. Isto é coma unha declaración de variables corrente, sendo a única diferencia respecto ás outras declaracións de variables que a variable se inicializa cun valor que se lle fornece na [[{{PAGENAME}}#Chamada a unha función|chamada á función]], que se realiza dende outra función.
 
==Declaración dunha función==
A declaración ou prototipo dunha función precísase para que cando o compilador chegue á chamada dunha función antes de chegar á definición da mesma, este xa saiba da súa existencia e coñeza:
*A cantidade de argumentos que ten que recibir e o seu tipo de dato.
*O tipo de dato que devolverá a función.
*O identificador da función.
 
Isto quere dicir que, en caso de que a definición da función vaia antes das chamadas á mesma, non sería preciso incluír a declaración da función. De todos xeitos é costume que a primeira función sexa a principal, e a primeira función adoita ser a que contén a meirande parte das chamadas a funcións, polo que situar as declaracións das funcións ao comezo do programa e logo situar a definición da función principla e tras ela as demáis e unha práctica moi habitual.
 
A declaración dunha función ten que aparecer entre as [[{{BASEPAGENAME}}/Directrices para o proprocesador|directrices para o ''preprocesador'']] e a [[{{PAGENAME}}#Definición dunha función|definición]] da función principal. É dicir, comparten espazo coas declaracións de [[{{BASEPAGENAME}}/Variables#Variables globais|variables globais]].
 
As partes de que consta unha función son ben similares ás da cabeceira dunha [[{{PAGENAME}}#Definición dunha función|función]]. De feito, poden ser iguais, salvo porque non fai falla especificar o nome que terán as variables nas que se garden os argumentos fornecidos á función na [[{{PAGENAME}}#Chamada a unha función|chamada]].
 
Velaquí uns exemplos de declaracións dunha función:
<source lang=c>
int IdentificadorDaFuncion1(int parametro1, float parametro2, float parametro3) // Esta leva os identificadores das variables que se han usar na función
int IdentificadorDaFuncion2(double, double) // Esta non, simplemente leva os tipos de datos que vai recibir na chamada
</source>