Linguagem C

Origem: Desciclopédia, a enciclopédia livre de conteúdo.

Nota: Para outros significados de C, ver C.


Clippy.gif

Precisando de ajuda para implementar Gambi Design Patterns? Clique aqui para resolver esse problema!


Zezima.jpg
Este artigo é complexo demais
Este artigo está codificado em linguagem de Nerds e se você for uma pessoa normal provavelmente não entenderá. Se não quiser ter trauma pelo resto da vida não leia este artigo.




60px-Bouncywikilogo.gif
A nossa sátira autorizada, a Wikipédia, tem um artigo sobre: Linguagem C.
Ken Thompson e Dennis Ritchie os respectivos Idiotas inventores da linguagem c

Cquote1.png C traiu o movimento programador, véio! Cquote2.png
Dado Dollabela sobre C
Cquote1.png Ué... Cadê o mouse? Cquote2.png
Delpheiro sobre C
Cquote1.png Como é que eu limpo a tela mesmo? Cquote2.png
n00b sobre C
Cquote1.png Passa um pano molhado! Cquote2.png
Carla Perez sobre n00b
Cquote1.png C trata os tipos de dados do jeito que meus clientes me tratam. Cquote2.png
Puta sobre C
Cquote1.png ╓▀▒╂┲▅▧█╪╪╙╙▊▓▓ Cquote2.png
Programador sobre o suporte de C a i18N
Cquote1.png Seus brutos. Cquote2.png
Emo Programmer sobre C
Cquote1.png Pronto, agora é só colocar uma funçãozinha aqui, pra chamar aquela outra, e eu nem precisei fazer nenhum loop! Cquote2.png
Praticante de POG sobre C
Cquote1.png Se não existisse C hoje estaríamos programando em Obol, Pasal, BASI! Cquote2.png
Dennis Ritchie sobre C
Cquote1.png Cê... cê... cê cê re le cê cê Cquote2.png
Mamonas Assassinas sobre C
Cquote1.png 1. sm Terceira letra do alfabeto, consoante 2. num Como algarismo romano, equivale a 100 3. Terceiro numa série indicada pelas letras do alfabeto Cquote2.png
Dicionário sobre C
Cquote1.png Em que lugar do código eu coloco as exceções? Cquote2.png
Programadora Java estagiária sobre C
Cquote1.png Quer dizer então que aquilo era um ponteiro, e não o operador aritmético de multiplicação? Ai meu Jisuius! Eu sabia que ia dar merda! Cquote2.png
Programador VB sobre C
Cquote1.png Lexograficamente falando, é de total verossimilhança que um programa escrito em Linguagem C devolva o controle ao sistema operacional, ao término de sua execução, nos dando a impressão de que não foi executado. Mas existem formas de burlar tais eventos, uma delas é usando a função getche()... Cquote2.png
Professor universitário Pogger metido a sabichão sobre C
Cquote1.png O que esse cara quis dizer? Cquote2.png
Aluno universitário sobre professor universitário pogger sobre C
Cquote1.png Oh My God! O buffer está cheio de lixo, e o garbage colector não funciona. Oh My God! Cquote2.png
Programador Java Emo sobre C
Cquote1.png É C de Cilada, Bino! Cquote2.png
Pedro sobre C
Cquote1.png Professor, então quer dizer que eu posso escrever long long long long long ... long int? Cquote2.png
Aluno universitário após uma aula de tipos de dados sobre C
Cquote1.png Na União Soviética o ponto e vírgula se esquece de você!!! Cquote2.png
Reversal Russa sobre ponto e vírgula


C é uma linguagem de programação imitada da linguagem B (daí o nome C) para escrever os tipos mais fodidos de software, como Orkut, MSN, trojans, keylogers, e outros tipos de vírus para sistemas inoperacionais como o Windows.

Tabela de conteúdo

[editar] A Linguagem

Veja um exemplo típico de Hello world C:

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
   char str[] = "Hello, world";
   printf("%s", str");
   return EXIT_SUCCESS; 
}

Esse é o típico exemplo do bom programador. Programadores babacas que programam C em Windows fazem assim:

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
void main(void) {
 char str[] = {'H','e','l','l','o',',','w','o','r','l','d'}
 puts(str);
 system("pause"); //comando do DOS
 getche(); //apenas para garantir
 getch(); // que cara mais inseguro
 return 0;
}

Apesar de ninguém saber para que serve essa merda do conio, 98.43% dos POGprogramadores C a usam.

[editar] Falhas de segurança

C é a linguagem de programação preferida dos hackers, lammers, pessoas que não conseguem pegar ninguém e fabricantes de antispyware. É estatisticamente comprovado que um programa escrito em C tem 73,48% de chances de ser ilegível e 44,88% de chance de conter um ou mais furos de segurança (existe também uma chance de 3,14159% de que o programa faça uso da biblioteca indexada pelo Vaticano conio.h).

A linguagem C é muito utilizada para criar vírus no sistema operacional vírus Windows. A maioria das vulnerabilidades tinha como causa os seguintes problemas:

  • Buffer overflow
  • Internal Stack Overflow error
  • Buffer overrun
  • Buffer underrun
  • Buffer rape
  • Desconhecimento da função free() por parte dos desprogramadores
  • Uso exagerado da função malloc() por parte dos desprogramadores
  • Uso exagerado da função calloc() por parte dos desprogramadores
  • Total falta de noção quanto ao uso da função realloc() por parte dos desprogramadores
  • A biblioteca conio.h
  • A dificuldade em manipular strings
  • Retornar endereços de variáveis locais em funções que retornam chars automaticamente promovidos para ints por meio de funções que recebem argumentos variádicos com macros pertencentes ao padrão C99
  • A dualidade ponteiro/vetor. De acordo com o princípio da incerteza de Heisenberg, se você sabe o endereço de memória contido num ponteiro, você não sabe o tamanho do vetor equivalente; se você sabe o tamanho do vetor, você não sabe o endereço de memória sem convertê-lo antes num ponteiro (o que automaticamente faz com que você deixe de saber o tamanho do vetor)
  • O desprogramador e a mula do usuário final
  • Falta de café
  • Lesão por desEsforço Repetitivo (LER)

Estudos apontam que o uso de coleta de lixo (garbage collector) eliminaria todos esses problemas, mas alguns desprogramadores temem que isso eliminaria (coletaria) a própria linguagem. A própria Boiorland realizou algumas experiências nesse sentido, mas falhou miseravelmente. Felizmente, o coletor de lixo implementado pela Boiorland recolheu apenas o compilador (que, inacreditavelmente, fedia mais que a própria linguagem), mantendo a linguagem intacta.

Uma grave falha de segurança da linguagem C, entretanto, não tem nada a ver com sistemas computacionais, mas com a integridade sexual do desprogramador. Tal falha se deve ao uso do operador de excitamento ++ que, lamentavelmente, pode levar o programador a atos de sexualidade discutível. Por exemplo, veja o seguinte trecho de código:

i = i++;

Nesse exemplo, o desprogramador tenta aplicar o operador de excitamento ++ ao objeto i e inseri-lo no seu próprio objeto, causando comportamento sexualmente indefinido. Apesar dessa falha, a linguagem de programação C é considerada uma linguagem de macho, pois ainda mantém as aparências usando linguagem chula e de baixo-nível... Exceto no caso geral de desprogramadores do sistema da frutinha.

[editar] C no Windows

Desprogramadores que usam C no Windows não conseguem dar um passo sem a salvadora-de-empregos-onipotente biblioteca windows.h. Até mesmo para se criar o método main é necessário tal avançadíssimo recurso criado, patentiado, registrado e castrado pela Microsoft. Vejamos como típico desprogramador C de Windows começa um programa:

#include <windows.h>
#include <conio.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow) {
   MessageBox(NULL, "Adeus, mundo cruel!\n", "Mensagem", MB_OK);
   getche();
   return 0;
}

[editar] Futuro

Hoje existem as linguagens C-dislike-pioradas (tais como C++), linguagens naturalmente afrescalhadas (como Java) ou ainda pseudo-linguagens (como C#). Isso porque quem as inventou não era macho o suficiente para usar C e mete umas porcarias no C, dando a entender que é macho. A isso se chama de metrossexualidade.

Apesar disso, atualmente está em desenvolvimento um novo padrão da linguagem C. O novo padrão irá acrescentar novas funcionalidades àquilo que ninguém sabe como funciona e todo mundo acha que não precisa. Rumores indicam que o novo padrão será chamado Cc-Z~ (pronuncia-se "Cecê-zão") em homenagem aos nerds que já trabalham há meses no seu desenvolvimento sem tomar banhos.

v  d  e h
Linguagens de Programação

ABAPKhadaAJAXAlgolAlgoritmoASPAssemblyBASICBashBefungeBrainfuckCC♭C#C=C+1C=C-1ClipperCOBOLColdFusionDDBaseDelphiEiffelFortranFoxProGambiarraGeneXusGroovyHaskellHQ9+HQ9++HTML (Microsoft HTML)• IntercalJADJavaJavaScriptLispLuaMakerMalbolgeManaged C++ModulaNatural.NetPascalPascaliPerlPutaPHPPOGPortugolPrologPythonRubyRuby on RailsRuby off RailsScalaSmalltalkSQLVBScriptVisual BasicVHDLWilde CWhitespace


Ferramentas pessoais