Introdução

Introdução

Como em nossa primeira parte deste artigo, dissemos que esperávamos que você, o leitor, tivesse algum conhecimento de programação, nesta parte queremos ajudá -lo a obter um lugar onde C fica em comparação com outras linguagens de programação que você pode saber. A escolha dessas línguas foi bastante difícil por causa de vários critérios, mas no final paramos em C ++, Perl e Python. Como as linguagens de programação podem ser classificadas de várias maneiras (dependendo do paradigma, sintaxe ou estilo, por exemplo), não tentamos encontrar idiomas que estejam na mesma categoria que C que C. Em vez disso, como os idiomas acima mencionados são bastante populares no mundo Linux, nós os escolhemos, mencionando qual é o lugar de cada idioma no grande esquema, para que é geralmente usado e, claro, as diferenças entre eles e C. Este artigo será estruturado da seguinte forma: começaremos com elementos importantes de cada idioma, como a declaração variável, digitando ou estrutura e comparamos isso com a forma como é feito com C. Assim, esperamos te dar uma idéia sobre o idioma antes de começarmos. As peças que este artigo é feito será exatamente como a estrutura anunciada deste artigo, para facilitar a compreensão.

A comparação

Tipos, operadores, variáveis

C++

C ++ foi inicialmente chamado "C com classes", que diz muito sobre sua relação com C com C. É amplamente visto como um superconjunto de C (portanto, C ++ O Operador de Incremento Uneado ++), introduzindo recursos de programação orientados a objetos. Os tipos são essencialmente usados ​​da mesma forma, com bool sendo introduzido em C ++ para operações booleanas. Basicamente, ao falar sobre diferenças de C e C ++, a maioria delas vem dos conceitos OOP C ++ e C não. Por exemplo, C ++ tem sobrecarga do operador, um termo específico de OOP, o que significa que um operador pode ter implementações diferentes, dependendo dos dados em que está operando. Por exemplo, em C ++, você pode fazer isso:

 a << 2 

Agora, se A for um número inteiro, isso fará uma operação bit nele (deslocamento à esquerda por 2), mas se A for um fluxo de saída, a linha acima tentará escrever um '2'. Esse tipo de comportamento é uma das razões pelas quais o C ++ é criticado por permitir más práticas de programação. Variáveis ​​e constantes são declaradas da mesma maneira que em c.

Perl

Com Perl é mais simples: ele possui apenas três tipos de dados. Estes são escalares, matrizes e hashes ou matrizes associativas. Os escalares são prefixados com um sinal de dólar, as matrizes são prefixadas com um @ e os hashes são prefixados com %s. A diferença em relação aos tipos é que o Perl é uma linguagem de programação dinâmica, enquanto C é fraco, o que significa que em C você lidará com declarações adequadas de variáveis, como "essa variável é um número inteiro" ou "essa outra variável é um ponteiro para um flutuador ”. As diferenças em relação aos operadores aritméticos são apenas que o Perl tem '**' para exponenciação, enquanto C precisa de uma função para alcançar isso.

Pitão

A declaração variável do Python é baseada em contexto. Por exemplo, queremos declarar uma corda, um número inteiro e um flutuador:

VAR1 = "String" var2 = 100 VAR3 = 100.98

Com C, isso teria sido como

char* var1 = "string"; int var2 = 100; flutuar var3 = 100.98;

C não tem um tipo de string como outros idiomas, portanto, uma string deve ser declarada como uma variedade de caracteres ou um ponteiro para um char, enquanto o Python oferece números, dicionários, strings, listas e tuplas como tipos de dados.

Controle de fluxo

Todos os quatro idiomas descritos aqui têm muitas coisas em comum quando se trata de controle de fluxo. Por exemplo, ao iniciar um se bloco, nenhum requer uma palavra -chave final, como fi em Bash ou Algol68. Falando em If Blocks, a sintaxe é semelhante, por isso, se você costumava programar em C ++, Perl ou Python, você encontrará o caminho muito familiar. O mesmo pode ser dito sobre o restante das operações de controle de fluxo: para, para, enquanto, switch/caso ou quebra/continue. Novamente, se você estiver acostumado à maneira como os três idiomas controlam o fluxo, precisará de alguns minutos para se acostumar com C. Algumas diferenças principais podem ser: Perl tem mais palavras -chave para lidar com isso do que C, como refazer, por último ou próximo. Python tem o passar palavra -chave para ... não fazer nada basicamente, mas é útil quando se precisa de uma aula vazia. Por exemplo:

aula Vazio: passar

Funções

Uma declaração simples de função em C seria assim:

int sum (int a, int b)  retornar a + b; 

Esta seria uma função chamada soma que retorna um número inteiro de calcular a soma de seus 'argumentos, a e b, Também números inteiros. Note o blocos que fazem uma delimitação clara sobre onde o corpo da função começa e quando termina. Em Perl, o termo função é usado de forma intercambiável com a sub -rotina. Você pode, como em C, primeiro declarar uma função, depois defini -la ou declará -la e defini -la de uma só vez, como fizemos acima. Você tem que usar o sub palavra -chave para dizer ao intérprete Perl o que você quer fazer. Em Python, nosso exemplo de soma seria assim:

def soma (a, b): retornar a + b

Você talvez tenha notado que não dissemos nada sobre c++. Bem, no que diz respeito ao estamos preocupados, não há diferença entre C e C ++ a esse respeito.

Ponteiros e matrizes

Um ponteiro é uma variável que mantém o local da memória de outra variável. Como em C, as dicas e as matrizes são amarradas muito apertadas e oferecem muitos recursos avançados ao programador C ++. Novamente, não há diferença importante entre os dois. Perl tem referências que oferecem a mesma funcionalidade. Por exemplo, este pedaço de código define uma variável chamada VAR e uma referência a ele chamada Refvar:

$ var = 20; $ refvar = \ $ var;

Em C, teríamos feito algo como

int var; var = 20; int *refvar; refvar = &var;

Perl, como Python, não permite que o programador faça manipulação direta de memória. Alguns vêem isso como uma coisa boa, outros não. O Python oferece ctypes, que é uma biblioteca que oferece a função Pointer () para usar ponteiros. O conto é: Python não usa ponteiros. A longa história é que a maneira de Python de referenciar variáveis, ou seja, é apenas um valor, é diferente de um programador usado para C.

Se você usou matrizes em C ++ ou Perl, o conceito é o mesmo. Perl tem uma sintaxe diferente, mas se você já sabe o que é uma matriz, ficará bem em C. Python oferece o variedade módulo que oferece essa funcionalidade, porque já possui listas como um tipo básico, exceto que as matrizes são mais restritivas.

Estruturas

Em C, uma estrutura é um registro que contém um conjunto fixo e rotulado de objetos, todos embrulhados em um. Por exemplo:

estrutura cliente int conta; nome do personagem; equilíbrio de flutuação; ;

Citando a Wikipedia, “em C ++, um estrutura é uma classe definida com o estrutura palavra -chave. Seus membros e classes base são públicos por padrão. Uma classe definida com o aula A palavra -chave tem membros privados e classes base por padrão. Esta é a única diferença entre estruturas e classes em C++.”. Em Perl até a versão 5, as estruturas eram um problema (ou a falta dela), mas agora existe Perldsc (Livro de receitas de estruturas de dados Perl), disponível no PerlDoc.org. Em Python, você sempre pode (bem, quase) usar tuplas ou dicionários para isso.

Incluindo arquivos

Como você viu na primeira parte, em C One usa diretivas de pré -processador para incluir definições de outros arquivos. Essa funcionalidade é oferecida também por C ++, com a mesma sintaxe, exceto que os arquivos de cabeçalho são nomeados $ Name.HPP e que você não precisa da extensão do arquivo:

#incluir 

iostream é o equivalente C ++ do stdio.h. Em Perl, temos o usar palavra -chave para isso e pode ser usada assim:

usar Módulo;

Em Python, o equivalente ao uso é importar, Usado exatamente da mesma maneira que em Perl, exceto que não requer um ponto e vírgula no final.

Outras considerações

Muitos de vocês notaram que todos os idiomas escolhidos para nossa comparação são orientados a objetos, enquanto C não é. Esta não é uma comparação injusta, porque se tivéssemos escolhido Fortran ou Prolog como nossos termos de comparação, é provável que muitos programadores hoje não usem esses idiomas, que nosso artigo não teria sido muito popular. Por outro lado, pensamos nisso como uma maneira de molhar os pés, porque o hábito faz parte da natureza humana e, se você já usou um ou mais desses idiomas, será mais fácil para você quando você começar a aprender C. Portanto, esta parte do artigo é destinada como uma mão amiga e, se conseguimos fazer isso, tudo bem.

C e c++

Alguns de vocês podem se perguntar: se o C ++ é tão semelhante ao C, mas é mais complexo e oferece mais, por que se preocupar com C? Este tem sido um tópico discutido mais do que deveria ter sido, e tentaremos dar uma resposta à nossa. Primeiro de tudo, C é mais simples. A K&R tem 266 páginas, enquanto “a linguagem de programação C ++” do Criador, Bjarne Stroustrup, tem 1090. Nuff disse. Segundo, código existente. Independentemente da arquitetura de hardware, sistema operacional ou propósito, C é generalizado e depois alguns. Dos kernels do sistema operacional às bibliotecas da GUI, C está lá e não tem a intenção de sair de lugar nenhum. Isso não quer dizer que C ++ não seja usado por muitos desenvolvedores. Estamos apenas dizendo que mais cedo ou mais tarde você terá que trabalhar com o código C ou usar um idioma influenciado por ele, para que o conhecimento C seja sempre bonito em um currículo. Terceiro, se você quiser aprender C e C ++, é melhor começar com C, devido à sua 'simplicidade mencionada acima e porque, uma vez que você terá o básico, o C ++ parecerá mais fácil de aprender. Finalmente, é tudo sobre a ferramenta certa para o trabalho. Se você precisar de código rápido, a capacidade de ir de baixo nível e uma linguagem simples, vá com C.

Conclusão

Após esta segunda parte deste artigo, começaremos a aprender a programação C no Linux, pois pensamos que muitas partes introdutórias não fazem sentido. Ficaremos felizes em ajudá -lo lá.

Aqui está o que você pode esperar a seguir:

  • EU. C Desenvolvimento no Linux - Introdução
  • Ii. Comparação entre C e outras linguagens de programação
  • Iii. Tipos, operadores, variáveis
  • 4. Controle de fluxo
  • V. Funções
  • Vi. Ponteiros e matrizes
  • Vii. Estruturas
  • Viii. E/S básico
  • Ix. Estilo de codificação e recomendações
  • X. Construindo um programa
  • XI. Embalagem para Debian e Fedora
  • Xii. Obtendo um pacote nos repositórios oficiais do Debian

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Melhor leitor de PDF para Linux
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Coisas para instalar no Ubuntu 22.04
  • Como instalar o Adobe Acrobat Reader no Ubuntu 22.04 Jammy…
  • Introdução ao Vagrant
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Ubuntu 20.04 Guia
  • Sistema Linux Hung? Como escapar para a linha de comando e…