Quel est le meilleur commentaire dans le code source que vous ayez jamais rencontré? [fermé]


360

Quel est le meilleur commentaire dans le code source que vous ayez jamais rencontré?

Réponses:


1462

Je suis particulièrement coupable de cela, en incorporant des commentaires non constructifs, de la poésie de code et de petites blagues dans la plupart de mes projets (bien que j'ai généralement assez de sens pour supprimer quoi que ce soit directement offensant avant de publier le code). En voici un que j'aime particulièrement, placé loin, très loin d'un `` objet divin '' mal conçu:

/**
* For the brave souls who get this far: You are the chosen ones,
* the valiant knights of programming who toil away, without rest,
* fixing our most awful code. To you, true saviors, kings of men,
* I say this: never gonna give you up, never gonna let you down,
* never gonna run around and desert you. Never gonna make you cry,
* never gonna say goodbye. Never gonna tell a lie and hurt you.
*/

JE SUIS DÉSOLÉ!!!! Je ne pouvais pas m'en empêcher .....!

Et un autre, que j'admets ne pas avoir réellement sorti dans la nature, même si je suis très tenté de le faire dans l'une de mes classes moins intuitives:

// 
// Dear maintainer:
// 
// Once you are done trying to 'optimize' this routine,
// and have realized what a terrible mistake that was,
// please increment the following counter as a warning
// to the next guy:
// 
// total_hours_wasted_here = 42
// 

2
// Cher programmeur // // Votre code s'exécute désormais plus lentement maintenant que j'ai corrigé tous les bogues que vous avez introduits. // Mais vos optimisations ont certainement aidé.
DevinB

2
+.5 pour Rickrolling dans les commentaires, +.5 pour total_hours. Génial
Wayne Werner

3
La première fois que j'ai été vraiment RickRolled - et c'était drôle. Quand je vois des liens vers YouTube, je m'attends toujours à être RickRolled (camel cased English !!), mais je ne m'attendais jamais à être RickRolled dans les commentaires de code.
Vincent McNabb

4
total_hours_wasted_here = -32768, que dois-je faire? je pense que quelque chose est cassé.
Behrooz

8
Veuillez arrêter de "mettre à jour" le compteur. Il ne vaut pas cognant cette question sur la première page encore une fois .
Michael Myers

1055
Exception up = new Exception("Something is really wrong.");
throw up;  //ha ha

5
J'ai lu tous les commentaires de haut en bas, me demandant ce que les gens voulaient dire quand ils disaient "craqué, lire celui-ci" ou "craquer, lire celui-là". Bien. Je viens de craquer en lisant celui-ci ...
Daren Thomas

37
Littéralement fait LOL à l'intelligence et à la puérilité combinées de celui-ci.
David Koelle

2
classe MonkeyPoo étend l'exception {}; ... lancer un nouveau MonkeyPoo (); // parce que c'est tellement plus amusant à lancer qu'une exception
Adam Rosenfield

2
Je vais commencer à utiliser à la place d'ex maintenant XD
Ammar

23
Lorsque je me réveille d'un sommeil vraiment profond, mon QI chute à environ 25 et mon esprit va dans des endroits extrêmement étranges. Une fois, après une longue période d'écriture java, je me suis réveillé au milieu de la nuit, me sentant très malade, et je suis parti en courant dans la salle de bain. Alors que je vomissais dans les toilettes, la seule chose à laquelle je pouvais penser était "Je me demande quelle exception je lance en ce moment ..."
Frank Farmer

1052
//When I wrote this, only God and I understood what I was doing
//Now, God only knows

175
C'est une phrase de Karl Weierstrass, le mathématicien qui nous a donné la merveilleuse définition de continuité epsilon et delta.
Edwin Jarvis

3
Weierstrass l'indifférenciable?
Peter Wone

4
@Augusto, avez-vous une source pour l'attribution de cette phrase à Weierstrass? J'aimerais savoir de quoi il parlait.
Kevin


1030

Cela semble empêcher les crétins de salir mon code ...

// Autogenerated, do not edit. All changes will be undone.

7
Me fait souhaiter des favoris SO pris en charge sur les réponses individuelles
AviD

3
@AviD Vous pouvez marquer stackoverflow.com/questions/184618/…
alex

@alex, eh bien, maintenant ... Quoi qu'il en soit, je voulais dire la même chose que vous pouvez marquer une question comme favorite ...
AviD

@AviD Oui, je sais, suggérant simplement une solution de contournement.
alex

3
Je pense qu'ils vont gâcher votre code de toute façon: il dit qu'il va se réparer, alors pourquoi ne pas le casser pour des coups de pied?
Mateen Ulhaq

946
// sometimes I believe compiler ignores all my comments

26
J'espère que le compilateur ignore les commentaires de cette personne.
Programmeur Windows

86
// Comme je n'ai jamais eu de réponse du compilateur, je pense que c'est vrai.
Liwen

40
Je pense que c'est censé être ironique ...
Neil Barnwell

52
rire , c'est l'avenir, les compilateurs lisent les commentaires juste pour s'assurer qu'ils n'ont pas mal compris ;-D
sharkin

4
// # reply_from_compiler vous aimez clippy, n'est-ce pas?
Carl

930
// I dedicate all this code, all my work, to my wife, Darlene, who will 
// have to support me and our three children and the dog once it gets 
// released into the public.

169
Est-ce quelque part sur le code source de Duke Nukem Forever? ;)
Adhip Gupta

1
Je ne comprends pas, qu'est-ce qui est si drôle?
hasen

11
Il dédie le code ci-dessous à sa femme, même s'il sait que c'est si mauvais que ça va le faire virer ou faire fermer son entreprise. :)
Robert P

390
Pourquoi le chien sera-t-il rendu public?
Nosredna

1
@Nosredna, merci pour un commentaire si drôle! @hasen j, le code a été écrit si mal que le "programmeur" perdra très probablement son emploi, et donc sa femme devra subvenir aux besoins de la famille.
Jamol

911
//Code sanitized to protect the foolish.
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.Web.UI;

namespace Mobile.Web.Control
{
    /// <summary>
    /// Class used to work around Richard being a fucking idiot
    /// </summary>
    /// <remarks>
    /// The point of this is to work around his poor design so that paging will 
    /// work on a mobile control. The main problem is the BindCompany() method, 
    /// which he hoped would be able to do everything. I hope he dies.
    /// </remarks>
    public abstract class RichardIsAFuckingIdiotControl : MobileBaseControl, ICompanyProfileControl
    {
        protected abstract Pager Pager { get; }

        public void BindCompany(int companyId) { }

        public RichardIsAFuckingIdiotControl()
        {
            MakeSureNobodyAccidentallyGetsBittenByRichardsStupidity();
        }

        private void MakeSureNobodyAccidentallyGetsBittenByRichardsStupidity()
        {
            // Make sure nobody is actually using that fucking bindcompany method
            MethodInfo m = this.GetType().GetMethod("BindCompany", BindingFlags.DeclaredOnly | 
                BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
            if (m != null)
            {
                throw new RichardIsAFuckingIdiotException("No!! Don't use the fucking BindCompany method!!!");
            }
            // P.S. this method is a joke ... the rest of the class is fucking serious
        }

        /// <summary>
        /// This returns true if this control is supposed to be doing anything
        /// at all for this request. Richard thought it was a good idea to load
        /// the entire website during every request and have things turn themselves
        /// off. He also thought bandanas and aviator sunglasses were "fuckin' 
        /// gnarly, dude."
        /// </summary>
        protected bool IsThisTheRightPageImNotSureBecauseRichardIsDumb()
        {
            return Request.QueryString["Section"] == this.MenuItemKey;
        }

        protected override void OnLoad(EventArgs e)
        {
            if (IsThisTheRightPageImNotSureBecauseRichardIsDumb())
            {
                Page.LoadComplete += new EventHandler(Page_LoadComplete);
                Pager.RowCount = GetRowCountBecauseRichardIsDumb();
            }
            base.OnLoad(e);
        }

        protected abstract int GetRowCountBecauseRichardIsDumb();
        protected abstract void BindDataBecauseRichardIsDumb();

        void Page_LoadComplete(object sender, EventArgs e)
        {
            BindDataBecauseRichardIsDumb();
        }

        // the rest of his reduh-ndant interface members
        public abstract string MenuItemName { get; set; }
        public abstract string MenuItemKey { get; set; }
        public abstract bool IsCapable(CapabilityCheck checker, int companyId);
        public abstract bool ShowInMenu { get; }
        public virtual Control CreateHeaderControl()
        {
            return null;
        }
    }
}

Mise à jour: l'auteur original du code s'est révélé lui- même, je dois donc rendre hommage à son échec Dan McKinley quitté l'entreprise avec laquelle j'étais avec peu de temps après avoir commencé, et il parle davantage du code, expliquant certains antécédents et quelques autres «WTF» que «Richard» a écrit.


27
C'est criblé d'obscénités, mais j'ai littéralement ri dans mon cube tout le temps de le lire.
dira ce que

241
la censure craint. rapportez l'original!
coder1

58
Annulées. Nous sommes tous des adultes ici. Si le code d'origine avait été "nettoyé", vous ne vous en seriez jamais suffisamment souvenu pour le publier ici.
JosephStyons

56
Ce sera encore plus drôle si un client voit le nom de la classe dans une trace de pile.
finnw

5
VEUILLEZ NE PAS RETOURNER À LA VERSION NSFW - l'auteur a explicitement accepté la version SFW aux révisions 3 et 6.
Adam Davis

825
// somedev1 -  6/7/02 Adding temporary tracking of Login screen
// somedev2 -  5/22/07 Temporary my ass

79
Ah, les bonnes solutions temporaires permanentes :)
Michael Stum

17
Il n'y a rien d'aussi permanent que temporaire !!!
Microkernel

727
// drunk, fix later

J'aurais aimé plaisanter. Et connaissant le développeur qui a écrit le code, je pense qu'il le pensait littéralement.


258
C'est ridicule, qui écrit des commentaires quand ils sont ivres.
Jiminy

66
@Jiminy: Sérieusement! Quand je code ivre, je me réveille avec un code magnifique que je ne comprends malheureusement pas.
JoshJordan

22
Ohh ... Si tu ne le comprends pas, ça doit être magnifique!
Anders Hansson

14
haha !!! Je l'ai fait juste pour le plaisir: j'ai salué mon dépôt local de subversion pour 'ivre', et j'ai trouvé un commentaire de validation dont je ne me souviendrais pas: "Fonctionne à nouveau, en quelque sorte. Eh bien ... je suis ivre!"
ivan_ivanovich_ivanoff

14
ha ha, "..somehow un BAC entre 0,129% et 0,138% confère une capacité de programmation surhumaine ..." xkcd.com/323
Alpha Codemonkey

719
// Magic. Do not touch.

20
Magie = fragile, peut-être?
MrBoJangles


5
J'ai dû l'écrire tant de fois - surtout pour me rappeler que "si vous touchez le code suivant sans vraiment savoir ce que vous faites, de mauvaises choses se produiront!"
Shalom Craimer

6
@Simon Howard, je ne le toucherais pas seulement s'il disait "More Magic"
DevinB

4
Je me souviens encore d'avoir appris le CS au lycée, où nous avons répondu à nos questions stupides par "Magic!" et le sourire le plus sinistre.
nevets1219

701

#define TRUE FALSE //Happy debugging suckers


95
#define NULL (:: rand ()% 2) // serait aussi très bien
Viktor Sehr

33
#define if (if (!
Bart van Heukelom

66
@Bart: Vous ne pouvez pas avoir de demi-parenthèses dans votre code, mais vous pouvez le faire #define if(x) if(!(x))(ou, plus sinistrement #define if while)
Chris Lutz

8
Comme indiqué, cela fonctionnerait en fait cependant: les caractères de commentaire jusqu'à la fin de la ligne s'assurent que les lignes probables où cette macro est utilisée ne seront pas compilées. Par exemple: a = TRUE;se traduira par a = FALSE // Happy debugging suckers;ce qui conduira à une erreur de compilation car la terminaison ;est maintenant dans les commentaires. Si vous utilisez le commentaire de bloc, /* Eat this */cela fonctionnera.
rix0rrr

6
#define struct unionest très utile dans les systèmes à mémoire limitée.
msw

640
// I'm sorry.

179
(Le code qui a suivi m'a fait pleurer.)
Greg D

20
mec, je veux voir le code qui a suivi ...
Erik Forbes

33
// Vous êtes pardonné. Allez en paix mon fils.
Mark Allen,

52
Cela devrait être un commentaire standard dans les modèles par défaut générés par MSFT
Alexandre Brisebois

1
vraiment, quel est le code qui suit ça ???
chakrit

636
return 1; # returns 1

32
Classique! Mais j'aime encore mieux celui-ci: "i ++; // augmenter i de 1"
steffenj

71
Qui sait s'il #DEFINE 1 comme autre chose ...
icelava

13
Je souhaite que des commentaires comme celui-là ne me soient pas familiers.
Drew Dormann

6
J'ai beaucoup vu ça. Je connais beaucoup de codeurs qui écrivent leurs fonctions avec des commentaires, puis remplissent le code ci-dessous / à côté de chaque commentaire. Il est très facile d'écrire de grandes fonctions commerciales, mais vous vous retrouvez parfois avec des commentaires assez détaillés.
Bip bip le

88
# renvoie un quoi? Sois plus précis.
Ozan

591
/* This is O(scary), but seems quick enough in practice. */ 

suivi de quatre boucles for imbriquées


33
pfft, c'est seulement N ^ 4 le plus probable, pas aussi mauvais que 4 ^ N ou N!
tloach

14
J'ai une fois rencontré une situation avec des boucles imbriquées à 8 profonds. L'autonomie a été mesurée en heures.
Loren Pechtel

8
J'avais un algorithme O (n) avec un réseau RTT de 500 ms dans sa boucle interne. n> 100k. Aie.
geofftnz

6
Il y a une qualité de rachat: ils savent au moins ce qu'est la grosse terminologie O. Espérons que chaque boucle passe sur un très petit N :-D
Jon Smock

27
Je travaille avec quelqu'un qui dirait: "O (MFG), s'il vous plaît"
Jason Orendorff

589
// Replaces with spaces the braces in cases where braces in places cause stasis 
   $str = str_replace(array("\{","\}")," ",$str);

34
+1 - Génie pur. Cela devrait aller sur un t-shirt ou quelque chose comme ça :-)
Rook

71
Le Dr Seuss écrit du code? +1!
Blorgbeard est sorti le

11
A besoin de deux syllabes de plus à la fin ...
Michael Myers

88
Je viens d'ouvrir les commentaires pour dire qu'il a besoin de deux syllabes de plus, mais apparemment je me suis battu de trois mois.
Michael Myers

15
Je ne suis pas d'accord avec la nécessité de syllabes supplémentaires, le compteur est parfait tel quel. Cinq groupes de trois syllabes chacun.
KevDog

542

Cela en dit long sur notre métier, quand on nous interroge sur le "meilleur commentaire", nous répondons tous avec les pires commentaires que nous pouvons trouver ...


67
Je suis entièrement d'accord avec votre commentaire selon lequel les commentaires sont rarement nécessaires.
harpo

16
Dépend des commentaires. Même les langages "auto-documentés" peuvent bénéficier de commentaires, tels que Python. Je déteste avoir à parcourir le code pour comprendre ce qui se passe, quand une simple phrase peut me dire.
crystalattice

32
Je ne suis pas d'accord sur le fait que les commentaires ne sont pas nécessaires. Il y a des moments où un simple commentaire de "cadrage" peut donner un sens à toute une série de codes. Par exemple, si vous utilisez un algorithme sophistiqué pour échapper à la complexité temporelle d'un algorithme de force brute, une référence peut être essentielle.
Mark Brittingham

83
Le code dit quoi ... les commentaires disent pourquoi!
Richard Ev

3
Je ne pourrais être plus d'accord avec "Richard E". Les commentaires sont destinés à dire à votre avenir * (collègues, examinateurs, vous-même) pourquoi avez-vous choisi de faire les choses de manière méchante au lieu d'une autre Je ne suis pas pour jeter des commentaires partout, mais parfois ils devraient être obligatoires.
Danita


508
Catch (Exception e) {
 //who cares?
} 

11
Celui-ci m'a fait rire comme un mental
Tablette

68
J'ai vu la même chose avec // se déplacer, rien à voir ici.
Ferruccio

6
J'ai tellement ri de celui-ci.
Franck

9
Je dois admettre que je l'ai fait à plusieurs reprises, car parfois, cela n'a pas d'importance.
NotMe

17
Wow, j'écris ce commentaire tout le temps. Je n'ai jamais pensé que c'était drôle, je pensais que c'était une déclaration sérieuse.
Jay

496
/**
 * Always returns true.
 */
public boolean isAvailable() {
    return false;
}

Ne comptez jamais sur un commentaire ...


85
Je le dis toujours à mes collègues. "Les commentaires ne courent pas !!"
OscarRyz

15
Je pense que vous vouliez dire "ne comptez jamais sur le code". Je suis sûr que les spécifications, la conception et les exigences nécessitaient un code retour ou vrai :)
gbjbaanb

ressemble à quelque chose que vous verriez sur l'édition techie de failblog.org
BobC

5
Des choses comme cela se produisent réellement, les gens ne prennent pas la peine de maintenir la documentation à jour avec les changements même si elle est juste au-dessus de la fonction.
Henk

25
... #define false true?
nouveau123456

457
/*
 * You may think you know what the following code does.
 * But you dont. Trust me.
 * Fiddle with it, and youll spend many a sleepless
 * night cursing the moment you thought youd be clever
 * enough to "optimize" the code below.
 * Now close this file and go play with something else.
 */ 

32
Cela me rappelle un type qui a juré qu'il pourrait optimiser un algorithme de démonstration de théorèmes mécaniques que j'ai écrit il y a des années dans un projet d'IA. Il a amélioré les performances mais le code n'a pas fonctionné ... ce qu'il a juré être ma faute.
Mark Brittingham

Hmm, n'ai-je pas vu celui-ci quelque part?
bzlm

6
@Mark Il a seulement dit qu'il optimiserait le temps, il n'a rien dit sur la fonctionnalité = P
DevinB

98
Si cela ne doit pas fonctionner, je peux optimiser n'importe quel code pour un runtime de zéro.
Michael Borgwardt le

9
C'est à cela que sert le contrôle de code source. Perdez quelques heures à essayer de l'optimiser, puis si cela ne fonctionne pas, revenez en arrière.
Kibbee

429
try {

} finally { // should never happen 

}

15
++. d'autres dans mon entreprise écrivent tout le temps!
CVertex

17
J'ai vu ce commentaire (et je l'ai même écrit moi-même) dans le passé, pour des choses qui ne devraient jamais se produire (mais juste au cas où, voici le code pour gérer l'erreur). La partie la plus drôle est que les ti sont placés dans un bloc enfin, ce qui signifie que cela devrait toujours arriver ...
Troy Howard

32
Oui, c'était la blague. =)
Erik Forbes

15
Si vous avez un appel System.exit () dans le bloc try, alors OUI, le finalement ne devrait jamais arriver!
Romain Linsolas

6
Raison n ° 984 pour utiliser Debug.Assert (). ;)
Scott Hanselman

411

De: https://github.com/zepouet/Xee-xCode-4.5/blob/master/XeePhotoshopLoader.m#L108

// At this point, I'd like to take a moment to speak to you about the Adobe PSD
// format. PSD is not a good format. PSD is not even a bad format. Calling it
// such would be an insult to other bad formats, such as PCX or JPEG. No, PSD
// is an abysmal format. Having worked on this code for several weeks now, my
// hate for PSD has grown to a raging fire that burns with the fierce passion
// of a million suns.
//
// If there are two different ways of doing something, PSD will do both, in
// different places. It will then make up three more ways no sane human would
// think of, and do those too. PSD makes inconsistency an art form. Why, for
// instance, did it suddenly decide that *these* particular chunks should be
// aligned to four bytes, and that this alignement should *not* be included in
// the size? Other chunks in other places are either unaligned, or aligned with
// the alignment included in the size. Here, though, it is not included. Either
// one of these three behaviours would be fine. A sane format would pick one.
// PSD, of course, uses all three, and more.
//
// Trying to get data out of a PSD file is like trying to find something in the
// attic of your eccentric old uncle who died in a freak freshwater shark
// attack on his 58th birthday. That last detail may not be important for the
// purposes of the simile, but at this point I am spending a lot of time
// imagining amusing fates for the people responsible for this Rube Goldberg of
// a file format.
//
// Earlier, I tried to get a hold of the latest specs for the PSD file format.
// To do this, I had to apply to them for permission to apply to them to have
// them consider sending me this sacred tome. This would have involved faxing
// them a copy of some document or other, probably signed in blood. I can only
// imagine that they make this process so difficult because they are intensely
// ashamed of having created this abomination. I was naturally not gullible
// enough to go through with this procedure, but if I had done so, I would have
// printed out every single page of the spec, and set them all on fire. Were it
// within my power, I would gather every single copy of those specs, and launch
// them on a spaceship directly into the sun.
//
// PSD is not my favourite file format.

1
La ligne juste après cela et son commentaire en tête du gâteau. Santé mentale? Quelle raison? Le format a tout mangé ...
Kim Reece

66
s / PSD / Internet Explorer / g. s / format de fichier / navigateur Web / g. Maintenant, cela correspond à mes pensées.
TJ L

10
Je plains ce programmeur d'avoir à traverser une telle douleur !!! Mais génial commentaire. A versé son cœur.
Microkernel

4
Cette ligne: // PSD n'est pas mon format de fichier préféré. en fait un classique.
joedevon

387
const int TEN=10; // As if the value of 10 will fluctuate... 

136
Sur le marché actuel, 10 a maintenant une valeur de seulement 9.
Steve Fallows

13
Peut-être qu'un jour nous ferons évoluer plus de doigts ...
Loren Pechtel

59
qu'en est-il des très grandes valeurs de 10?
Mikeage

184
const int TEN = 11; // La mienne passe à onze
dub

18
Appeler Fortran à partir de C - Fortran ne fait que l'appel par référence, vous avez donc besoin de variables pour toutes les constantes.
Martin Beckett

364
    #Christmas tree initializer  
    toConnect = []  
    toRead =   [  ]  
    toWrite = [    ]   
    primes = [      ]  
    responses = {}  
    remaining = {}  

25
C'est une victoire. Une énorme victoire ...
Cyclone

16
OK, je vais utiliser cette prochaine fois j'ai besoin de quatre tableaux vides et deux hachages!
Josh

Urgh. Un "ÉCHEC!" Bruyant à l'auteur de ne pas savoir s'il utilise une langue sans format ou non.
TheBlastOne

Je doute qu'il ne connaissait pas la langue sans format. C'est une bonne blague :-)
Román

362

Vers le milieu d'un xslt de 30 pages

<!-- Here be dragons  -->

8
J'essaie toujours de comprendre comment commenter un XSLT d'une manière logique.
rjzii

78
Nous avons vraiment besoin de plus de dragons dans notre code.
Jon Smock


6
@annakata vous pensez que c'est mauvais, l'autre jour, quelqu'un a demandé de l'aide pour gérer un fichier xml de 31 Go. J'ai crié d'angoisse.
Dana the Sane

1
Quelqu'un m'a appelé?
Troggy

353

dans une méthode de ligne 2000 sans commentaires

{ 
  { 
    while (.. ){ 
      if (..){
          }
      for (.. ){ 
          }
         .... (just putting in the control flow here, imagine another few hundred ifs)
      if(..)   {
            if(..)     {
                   if(..)   {
                ...
                (another few hundred brackets)
                       }
                  }
         } //endif

(J'ai en fait jeté un coup d'œil à tous les crochets un jour juste pour voir à quel point c'était mauvais et, sans formatage, j'ai obtenu ceci:

{{{{}}{}{}{}{}}{{}{{}{}{}{}{}{}{{}{}}{}{}{{}{}{}{}{}{}{}{}{}{}{}{{}}}{{}{{}}{{{}}}{{}{}{}{}{}{}{}{{}}{}{{{}}{}{{}{}}{{{}}{}{}{}{}}{{}}}{}{{}{}{}{{}{{}}{}}{{}}}{{}}{{}}{{}}{}{{}}{{}}{{}}{{}{}{}}{}{}{{{}}{{}}}{}{}{}{}}{{{}{{}{}{}{{}{}{}{}{}{}}{}}{{}}{{}{}}}{{}}{{}}}{{}}{{}}{}{}{}{}{{}}{{}{}{}{}}}}{}{}}{{}{{{}{}{}{}}}}{{}{{{}}}}{{}{{{}{{}}{}{{}}{}{{}{}}{{}}{}{{}}}{{}}}}{{}{}{}{}{}{{{}    {{{{}}{}{}{}{}}{{}{{}{}{}{}{}{}{{}{}}{}{}{{}{}{}{}{}{}{}{}{}{}{}{{}}}{{}{{}}{{{}}}{{}{}{}{}{}{}{}{{}}{}{{{}}{}{{}{}}{{{}}{}{}{}{}}{{}}}{}{{}{}{}{{}{{}}{}}{{}}}{{}}{{}}{{}}{}{{}}{{}}{{}}{{}{}{}}{}{}{{{}}{{}}}{}{}{}{}}{{{}{{}{}{}{{}{}{}{}{}{}}{}}{{}}{{}{}}}{{}}{{}}}{{}}{{}}{}{}{}{}{{}}{{}{}{}{}}}}{}{}}{{}{{{}{}{}{}}}}{{}{{{}}}}{{}{{{}{{}}{}{{}}{}{{}{}}{{}}{}{{}}}{{}}}}{{}{}{}{}{}{{{}{}{{}}{}}}{}}{{}}{{}{}}{{}{{}{{}}}}{{{}{{{}}}}}{{{{{}}}}}{}{}{}{{{{}}}{}{}}{{}{{}}}}{}{{}}{}}}{}}{{}}{{}{}}{{}{{}{{}}}}{{{}{{{}}}}}{{{{{}}}}}{}{}{}{{{{}}}{}{}}{{}{{}}}}

L'endif est apparu autour de la ligne 800)


180
code tour-de-france
Andreas Petersson

7
c'est digne du quotidien ou de l'échec.com!
deadbug

67
On dirait Lisp!
endian

8
Ce commentaire est probablement là pour corriger un bogue du compilateur. : |
Rob Howard

49
Niveau de complexité cyclomatique de OH SHIIIIIIIII

353
long long ago; /* in a galaxy far far away */ 

1
est-ce que cela fonctionne réellement? dans quelle langue?
mauris

16
@Mauris: C'était à l'origine une extension C et C ++ pour les entiers 64 bits, prise en charge par de nombreux fournisseurs. Puis prise en charge normalisée C99 et C ++ 0x: en.wikipedia.org/wiki/Long_long
Juliano

Cela me fait penser aux pointeurs lointains et proches que nous avons utilisés en terrain 16 bits. :)
Macke

1
Cela fonctionne toujours parfaitement bien. Nous l'avons d'abord mis dans notre compilateur chez Convex il y a environ 25 ans parce que DMR a suggéré que cela devrait être le nom de nos entrées 64 bits.
tchrist

352
//This code sucks, you know it and I know it.  
//Move on and call me an idiot later.

26
Honnêtement en commentaire!
Mitchel Sellers,

46
J'adore l'honnêteté.
Jeff Schumacher

2
La première étape de l'amélioration consiste à reconnaître la carence.
icelava

acceptez vos erreurs avant que les autres ne les exagèrent :)
naveen

324
// If this comment is removed the program will blow up 

201
Il y a longtemps, j'ai accidentellement corrigé un défaut de segmentation dans Java3D en ajoutant un commentaire. Il était 100% reproductible; si j'ai supprimé le commentaire, il s'est écrasé. Tant que le commentaire était là, cela a bien fonctionné. Je suppose que c'était un problème de timing bizarre, mais je n'ai jamais compris exactement ce qui se passait.
DNS

54
Magic / More Magic
DevinB

16
C'est un peu comme un virus. Il contient du contenu destiné à se protéger. C'est comme l'ADN indésirable qui réussit à se faire copier.
Charlie Flowers

23
vous devriez comparer le bytecode généré par les 2 versions
JoelFan

13
Il m'a fallu une demi-journée pour comprendre que la fin d'un commentaire C avec \ (utilisé pour marquer la direction dans laquelle nous allons dans un tableau 2D) oblige le compilateur à sauter la ligne suivante.
Tgr
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.