Giter Site home page Giter Site logo

levxyca / docs Goto Github PK

View Code? Open in Web Editor NEW
81.0 5.0 4.0 465 KB

📂 Um projeto onde eu disponibilizo meus resumos e links interessantes para auxiliar outras pessoas que desejam estudar sobre programação.

Home Page: http://docs.levxyca.com/

License: MIT License

HTML 21.06% JavaScript 30.80% SCSS 48.13%
documentation

docs's Issues

Algumas correções na parte de C

Seria interessante reforçar que include é uma diretiva de pré-processamento.
Só "diretiva" fica vago.

stdio.h é um arquivo de cabeçalho, não uma biblioteca.
Bibliotecas são binários compilados.
Cabeçalhos no geral contém somente declarações de estruturas ou funções e aí durante o processo de compilação que as respectivas bibliotecas são linkadas.


Em tipos de variáveis seria interessante deixar mais claro a definição de double.
"ponto flutuante de precisão dupla", por exemplo.


Na parte sobre caracteres de escape seria bom envolver eles com aspas para que a barra invertida de escape não suma em alguns dos exemplos.
Sem aspas: "
Com aspas: \"

O mesmo problema ocorre em outros lugares, como na seção de testes e comparação e na explicação de strcmp.


Na parte sobre associatividade faltou fazer a distinção entre pré-incremento/decremento e pós-incremento/decremento.

++ e -- só tem associatividade da direita para a esquerda se forem pré-incremento/decremento.
Quando são de pós-incremento/decremento, não só a associatividade é da esquerda para a direita, mas também têm precedência sobre pré-incremento/decremento. Estando no mesmo nível do operador de chamada de função.


Como já mencionaram no Discord, em "Referências e vetores" o printf está errado.
Não se usa & no printf, a menos que você queira imprimir o endereço da posição e não o valor dela.


Sua declaração de matriz tem três erros também:

  • Não se separa linhas com ;, mas sim com ,
  • Sua matriz tem 2 linhas e não 3
  • Falta ; no final

Original:

float matriz[2][5] = { {1, 2, 3, 4, 5}; {1, 3, 7, 8, 9}; {6, 5, 4, 7, 1} }

Correto:

float matriz[2][5] = { {1, 2, 3, 4, 5}, {1, 3, 7, 8, 9}};

Na parte de funções, tecnicamente você usou de exemplo uma definição de função, não uma declaração.
Claro, uma definição automaticamente também a declara, mas é possível também apenas declarar sem definir:

#include <stdio.h>

// protótipo da função
int duplica(int numero);

int main(void)
{
    printf("Dobro de 2 = %d", duplica(2));

    return 0;
}

int duplica(int numero)
{
    return numero * 2;
}

Então para declarar uma função basta:

tipo_de_retorno nome_da_funcao ();

E para fazer um protótipo:

tipo_de_retorno nome_da_funcao (lista_de_parametros);

Em C a lista_de_parametros teoricamente não é necessária na declaração, contudo, se não definir a lista, o compilador não poderá checar se os tipos, ordem e quantidade de argumentos estão corretos quando encontrar uma chamada da função.
E aí que vem a diferença entre declaração e protótipo.
Protótipo é quando você especifica todos os argumentos e declaração quando só coloca os parênteses sem especificar os parâmetros.

Por não fazer muito sentido declarar sem a lista de parâmetros, acaba que no geral as pessoas acabam usando os dois termos para se referir a um protótipo de função.


Na parte de leitura de strings o comentário sobre o scanf está errado.
Isso de "só recebe uma palavra" é por utilizar %s e não limitação do scanf, vc poderia ler uma linha inteira assim:

scanf( " %[^\n]", variavel );

O outro erro está no "não controla a quantidade de caracteres recebido".
Isso também não tem nada a ver com o scanf, mas sim com usar %s sem especificar o limite. Exemplos:

char variavel[40];

scanf( " %39s", variavel ); // le uma palavra, limitando em 39 caracteres
scanf( " %39[^\n]", variavel ); // le a linha inteira, limitando em 39 caracteres

(tem que usar tamanho-1, pois o \0 não entra no cálculo do scanf)

Seria até bom remover a parte sobre gets, seu uso é mal visto e desencorajado.

Na parte sobre o fgets está errado o comentário sobre "tamanho - 1".
O que se passa para fgets é tamanho mesmo, a própria função irá ler só até tamanho - 1.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.