Funções estáticas na linguagem C do computador

Funções estáticas na linguagem C do computador
"Estática" é uma palavra reservada na linguagem do computador, c. É um especificador de classe de armazenamento que pode ser usado com funções. Um programa C pode ter mais de um arquivo. Apenas um dos arquivos deve ter a função c main (). Neste artigo, apenas dois arquivos são considerados: o arquivo com a função C main () que é chamada de MainFile.C e o outro arquivo sem a função principal que é chamada de outro arquivo.c

Função global

Uma função global é uma função definida em um arquivo C antes da função principal (). Até a função principal () é uma função global, mas a função principal () não é o foco neste artigo. No idioma C, as funções definidas pelo programador são geralmente funções globais e simplesmente chamadas de funções.

Uma função global pode ser chamada em qualquer escopo em seu arquivo. Para que uma função global seja vista em um arquivo diferente, seu protótipo deve ser declarado nesse arquivo diferente (veja abaixo.) Para impedir que uma função definida em um arquivo seja vista em um arquivo diferente, precede a definição com a palavra reservada, estática. Com isso, a função estática seria uma função global apenas em seu próprio arquivo e não será visto em outro arquivo.

Então, uma função global definida em outro arquivo.C pode ser visto em qualquer lugar do outro arquivo.c. Para que seja visto no Mainfile.C, seu protótipo deve ser declarado no arquivo principal.C (veja abaixo.) Sua definição em outro arquivo.c não deve ser precedido por "estático". Para impedir que seja visto no principal arquivo.C, sua definição em outro arquivo.c tem que ser tornado estáticas uma vírgula precedindo com a palavra, estática.

Este artigo ilustra a função estática na linguagem do computador, C começando com o significado de protótipo da função e seu uso em um programa C de dois ou mais arquivos.

Compilação dos arquivos, MainFile.C e outro arquivo.C, pode ser feito com o seguinte comando Bash Terminal:

GCC Mainfile.C Outro arquivo.C -o Temp.exe

Temp.exe é o nome do arquivo de execução único resultante.

Conteúdo do artigo

- Introdução - Veja acima

- C Protótipo da função

- Função global

- Função estática apropriada

- Conclusão

C Protótipo da função

Considere a definição de função global:

char* fn1 (char* stri)
retornar stri;

O protótipo para esta função é:

char* fn1 (char* stri);

É a assinatura da função, terminando em Semicolon.

Agora, deixe o conteúdo do outro arquivo.C BE:

char* fn1 (char* stri)
retornar stri;

Suponha que o arquivo, outro arquivo.c tem apenas a definição da função global, fn1 (). Agora deixe o conteúdo do arquivo, Mainfile.C, seja:

#incluir
char* fn1 (char* stri);
int main ()

char* str = fn1 ("visto");
printf ("%s \ n", str);
retornar 0;

Começa com a inclusão do cabeçalho (biblioteca). Isto é seguido pela declaração de protótipo da função, fn () do outro arquivo.

Este arquivo principal não tem a definição de nenhuma função global que não seja a função padrão principal (). Na função principal, a primeira declaração chama a função fn1 () definida no outro arquivo. Esta chamada não seria eficaz se o protótipo de fn1 () não fosse declarado neste arquivo, Mainfile.c.

Se o leitor codificou os dois arquivos acima, ele poderá compilar o programa em um arquivo executável com o seguinte comando:

GCC Mainfile.C Outro arquivo.C -o Temp.exe

pressionando a tecla Enter no final da linha. A saída deve ser "vista".

Função global

O arquivo principal.O arquivo C pode ser modificado da seguinte forma:

#incluir
char* fn1 (char* stri);
char* fn (char* st)
retornar st;

int main ()

char* str1 = fn1 ("visto");
printf ("%s \ n", str1);
char* str2 = fn ("Global visto em seu arquivo.");
printf ("%s \ n", str2);
retornar 0;

Agora, existem duas funções globais no arquivo, Mainfile.c. Os nomes das funções são fn () e main (). dfn () é uma função global. Foi visto no escopo local principal () da função, por uma chamada. No idioma c, uma função global no escopo global, como fn (), é simplesmente referida como uma função. Além disso, a função global, fn1 () no arquivo, outro arquivo.c é simplesmente referido, como uma função.

Se os dois arquivos forem recompensados ​​em temperatura.Exe, então o Outout será:

visto

Global visto em seu arquivo.

Nota: A definição de função para fn () também pode ser feita para ser vista no outro arquivo, outro arquivo.c. Para alcançar que têm sua declaração de protótipo em outro arquivo.C, da seguinte forma:

char* fn (char* st);

terminando com um semicolon. Esta atividade é deixada como um exercício para o leitor.

Função estática apropriada

A partir da discussão acima, uma função pode ser vista em qualquer escopo (em qualquer lugar) em seu arquivo. Também pode ser visto em um arquivo diferente, para o mesmo programa, se seu protótipo for declarado lá. Para impedir que a definição do arquivo seja vista em um arquivo diferente, faça a definição estática precedendo com a palavra reservada, estática. Mesmo que seu protótipo seja declarado no arquivo diferente, ele ainda não será visto no arquivo diferente. Os arquivos do programa nem sequer compilam. Para ilustrar isso, deixe o conteúdo do arquivo, outro arquivo.C BE:

estático char* fn1 (char* stri)
retornar stri;

Este é o mesmo conteúdo no arquivo, outro arquivo.c, como antes, mas com a palavra reservada anterior, estática. O conteúdo do arquivo principal.Arquivo C permanece o mesmo. Se for feita uma tentativa de compilar os arquivos de programa com o comando,

GCC Mainfile.C Outro arquivo.C -o Temp.exe

O compilador emitiria uma mensagem de erro, o que significa que o programa não compilou. Mesmo que a declaração de protótipo no arquivo diferente também seja precedida pela estática, os arquivos de programa ainda não compilarão.

Conclusão

Uma definição de função no idioma C é uma função global. Esta função pode ser chamada (vista) em qualquer escopo em seu arquivo. Para que essa função seja vista em um arquivo diferente, como o arquivo principal, sua declaração de protótipo deve ser digitada nesse arquivo diferente. Para impedir que essa função seja vista no arquivo diferente, faça sua definição estática, precedendo -a com a palavra reservada, estática.