Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

Ponteiros vazios em C: Por que você precisa deles em sua experiência de codificação


Em linguagens de programação, certos conceitos tornam a codificação muito mais fácil. Por exemplo, o ponteiro void determina o tipo de dados específico das entradas de um usuário final na linguagem de programação C. Assim, levando-nos a discutir ponteiros vazios em C.

Como outros, ponteiros vazios têm funções relevantes para sua flexibilidade. Mas, se você quiser economizar tempo ao codificar, sua função de ponteiro é um ponteiro vazio. Esse ponteiro permite armazenar e recuperar um tipo de objeto diferente simultaneamente. Mais adiante, você aprenderá tudo sobre as técnicas de codificação envolvendo ponteiros vazios em C.

(Imagem de uma linguagem de programação)

1. O que são ponteiros vazios em C?


Geralmente, ponteiros vazios são ponteiros sem nenhum tipo de dados relacionado. Em outras palavras, eles são como recipientes vazios. Esse recurso permite que eles mantenham endereços de uma variável de tipo de tipo de dados desconhecido.

A função de ponteiro void do C permite que você os converta em outros tipos de dados, permitindo fácil alocação de memória. Posteriormente, isso permite funções flexíveis como bytes na alocação de memória. Além disso, ponteiros vazios em C ajudam a realizar funções genéricas.

(Um programa simples “Hello World” em linguagem de programação C)

https://commons.m.wikimedia.org/wiki/File:C_Hello_World_Program.png

2. Como o Void Pointer funciona em C?


No geral, a função de ponteiro é essencial para a programação. Pelo menos, vemos sua importância no gerenciamento e alocação de memória.

Existem dois tipos de ponteiro diferentes; ponteiros genéricos e ponteiros vazios. Nosso foco, no entanto, é em ponteiros vazios e como eles funcionam em C.

Para ter um ponteiro void em C, você só precisa declarar uma informação com a palavra-chave “void”.

No geral, a referência e a desreferenciação desempenham um papel no conceito de ponteiro de uso geral. A desreferenciação, neste caso, é quando você obtém um valor armazenado na variável ponteiro.

Portanto, se um valor de ponteiro não estiver associado aos tipos de dados disponíveis, você terá a conversão de tipos como opção.

No entanto, observe que os ponteiros void não suportam nenhuma operação aritmética. Em vez disso, usamos o operador de indireção “*”. Por esse motivo, torna-se necessário fazer a conversão de tipos na ausência de um tipo de dados associado. Typecasting, portanto, relaciona o tipo de dados declarado ao lado do ponteiro void. Caso contrário, a execução do programa exibe um erro do compilador.

O tamanho void é semelhante a um ponteiro de caractere em C. O objeto size varia dependendo da plataforma do ponteiro.

Essas funções de gerenciamento de memória são malloc() e calloc(). Em troca, essas funções ajudam a alocar memória do tipo de dados necessário. De certa forma, a alocação de memória usa um formato que permite que o ponteiro de função aprimore outros recursos.

(Uma ilustração pictórica de como os ponteiros funcionam em C).

https://commons.m.wikimedia.org/wiki/File:C_pointer_3.svg

3. Sintaxe do ponteiro vazio


Normalmente, seria melhor usar a sintaxe correta para importar qualquer função de programação. Portanto, a sintaxe de um ponteiro void em C é:

Void *pointer_name;

Onde “void” é a palavra-chave do tipo de ponteiro. Então, temos o nome do ponteiro para o qual apontamos e damos uma alocação de endereço.

Tomemos o exemplo abaixo:

int b =6

caractere c ='z';

Portanto, em um caso em que incluímos uma variável de ponteiro void, temos:

Vazio *p =&b; // ponteiro void aloca e mantém int 'b' como endereço do inteiro.

P =&c; // ponteiro void também contém o endereço char ‘c’.

Indo além, vamos destacar alguns exemplos de sintaxe:

int=6; // inicialização da variável inteira.

int *p; // declaração de ponteiro inteiro.

void *ptr; // declaração de ponteiro void.

flutuar *fp; // declaração de ponteiro flutuante.

p=fp; // ponteiro inválido.

ptr=p; // ponteiro válido.

fp=&i; // ponteiro inválido.

ptr=&i; // ponteiro válido.

ptr=fp; // ponteiro válido.

4. Alguns exemplos de ponteiros vazios em C com códigos de amostra


Continuando, vemos um exemplo de argumentos de ponteiro void no trecho de código abaixo:

Código de amostra nº 1


No primeiro de nossos exemplos de código, mostramos como usar a função malloc(), assim:

#include

#include

int main()

{

int a=90;

int *x =(int*)malloc(sizeof(int));

x=&a;

printf(“valor apontado pelo ponteiro x:%d”,*x);

retorna 0;

}

Resultado

Código de amostra nº 2


Neste próximo código, mostramos o conceito de conversão de tipos.

#include

int main()

{

void *ptr =NULL; //variável ponteiro vazio

int *p =NULL;//variável ponteiro inteiro

char *cp =NULL;//variável ponteiro de caractere

float *fp =NULL;//variável ponteiro flutuante

// tamanho do ponteiro nulo

printf("tamanho do ponteiro vazio =%d\n\n",sizeof(ptr));

//tamanho do ponteiro inteiro

printf("tamanho do ponteiro inteiro =%d\n\n",sizeof(p));

//tamanho do ponteiro do caractere

printf("tamanho do ponteiro do caractere =%d\n\n",sizeof(cp));

//tamanho do ponteiro flutuante

printf(“tamanho do ponteiro flutuante =%d\n\n”,sizeof(fp));

retorna 0;

}

Saída

Caso contrário, veja o link de vídeo anexado abaixo sobre códigos de ponteiro nulo na programação C.

https://youtu.be/-503stjWLhc

5. Usos do ponteiro void


De longe, o ponteiro void tem grande relevância na programação em linguagem C.

Para melhor compreensão, consulte o exemplo de código abaixo. Alguns deles incluem:

#include

void main()

{

int num=10;//Inicializa uma variável normal

void *ptr;//Declara o ponteiro void

ptr=#//Direciona o ponteiro Ptr para num

printf(“O valor da variável inteira é=%d”,*ptr);

}

No entanto, a execução desse código resulta em um erro em tempo de compilação. Se você usar a conversão de tipo no mesmo código para desreferenciar o ponteiro, obterá a saída desejada, assim:

#include

void main()

{

int num=10;//Inicializa uma variável normal

void *ptr;//Declara o ponteiro void

ptr=#//Direciona o ponteiro Ptr para num

printf(“O valor da variável inteira é %d”, *(int*)ptr );// Dereferenciando usando typecasting

}



O valor da variável inteira é 10.

Portanto, por conversão de tipo, podemos desreferenciar ponteiros void.

Portanto, enquanto a aritmética de ponteiro é inválida com ponteiros vazios, a conversão de tipos ajuda a resolver esse problema. A saída se torna:

(O ponteiro vazio facilita a codificação, revelando a localização das variáveis ​​de dados)

Para ilustrar, veja o código abaixo:

int main(void)

{

// Observe que a função malloc() retorna void *

// Dando sequência, conversão de tipo para qualquer tipo de dados, como char *, int *,…

int *x =malloc(sizeof(int) * n);

}

É importante notar que o programa acima compila apenas em C.

Conclusão


A função de ponteiro void é uma ferramenta de programação essencial, em geral. Os programadores acham útil porque não há tipos de dados associados a ele. Pelo menos, elimina a confusão de ponteiros direcionando diferentes valores e classes de dados entre si. Portanto, ponteiros vazios reduzem o excesso de conversão de tipos. Ele também suporta o tipo de ponteiro genérico de dados. Portanto, também é um compilador de propósito genérico.

Você tem um guia completo sobre como trabalhar com ponteiros vazios em c. No entanto, se você tiver dúvidas ou precisar de outros recursos de programação, nossa página de contato está sempre disponível.

Tecnologia industrial

  1. Por que você precisa de uma auditoria de energia do ar em seu sistema de ar comprimido
  2. O que são limitadores de torque e por que você precisa deles
  3. O que são braçadeiras hidráulicas e por que você precisa delas?
  4. 4 razões pelas quais você deve digitalizar sua documentação industrial
  5. Por que você absolutamente precisa configurar um sistema Andon?
  6. Corte a plasma:4 razões pelas quais você precisa de uma mesa de plasma em sua loja agora
  7. 10 razões convincentes pelas quais você precisa de corte a jato de água
  8. Por que você precisa de um ferreiro mecânico?
  9. Por que você precisa de uma pequena servo prensa?
  10. Por que você precisa de um centro de usinagem de 5 eixos?