2008-10-22 13 views
5

Sto lavorando a una stampante pretty C++ e vorrei mostrare i risultati della prettyprinter confrontando il codice prima e dopo averlo eseguito. Qualcuno sa dove posso trovare qualche brutto codice C++ per correre attraverso il prettypretty? Idealmente il codice verrebbe da qualche software open source.Ugly C++ code

+3

C'è un bel codice C++? Considererei brutto qualsiasi codice C++ ;-) SCNR – Mecki

+5

Perché stai lavorando su una prettyprinter se non riesci a trovare qualche codice brutto? :) –

+0

Mi sto anche chiedendo perché qualcuno dovrebbe scrivere il proprio "più carino". – Tim

risposta

5

Provare a effettuare una ricerca per 'obfuscation C++' e dovresti riuscire a trovare codice C++ che è difficile da leggere.

2

Un altro buon test è quello di prendere il normale codice C++ e vedere come può riformattarlo in uno standard di formattazione del codice diverso.

2

Non in C++ ma hai controllato il Concorso Internazionale Codice Obfuscated C?

Partenza alcuni dei vincitori code

2

Here is a list of bugs presentate contro l'eclisse C/C++ progetto strumenti. Molti dei bug riguardano il codice che non è stato formattato correttamente, quindi è possibile vedere come hanno fatto le cose e anche guardare le correzioni se sono state risolte.

6

Se non riesci a trovare un buon corpus di codice brutto, puoi sempre scrivere un "codice uglifier" e quindi eseguirlo su un codice medio.

Ad esempio:

  • rimuovere tutti gli spazi insignificanti
  • rimuovere/inserire spazi casuali
  • sostituisce le tabulazioni con diverso numero di spazi.
+2

+1 per "codice uglifier": P – Davy8

+1

Posso anche raccomandare codice da http://www.ioccc.org/ –

9

Qualsiasi cosa codificata su GNU coding standards offre uno stile di indentazione di merda per esercitarsi. Esempio letterale:

if (x < foo (y, z)) 
    haha = bar[4] + 5; 
else 
    { 
    while (z) 
     { 
     haha += foo (z, z); 
     z--; 
     } 
    return ++x + bar(); 
    } 
+3

Attendere ... WTF è? Questo è probabilmente il peggiore standard di programmazione di sempre. –

+0

Questo è solo lo stile predefinito di emacs. –

+0

@Thomas: All'inizio sembra brutto, ma dopo un po 'diventa molto più facile da leggere, specialmente se si fa molta programmazione lisp. –

1

La tua stampante è presumibilmente configurabile? Quindi sarà in grado di generare un codice brutto per gli input appropriati.