Még egyszer az érdekes kódról

Előzmény.

MViktor írta:
Szornyusegesen nez ki, de fordul, sot! mukodik. http://en.wikipedia.org/wiki/Duff’s_device

Igen, innen vettem én is. :)

Rétikánya:
Magamtól szörnyülködtem. Megnéztem a Wikin…
…s ilyenkor mindig rájövök mennyire nem is értek a programozáshoz. El kéne mennem favágónak.

Nem, nem. Ez hekk, nem normális programozás. Gondolj bele, ha minden nap ilyen kódot kellene megértened. Ez kb. olyan kód, mint amit mickkék csináltak az NavAndGo-s felvételi kampányukban. Amikor egy kódról nem látszik villámgyorsan mit csinál, akkor az vagy zseniális hekk, vagy egy kalap szar. Ez a kód azért érdekes, mert az ember nem is gondolja, hogy ez a szintaxis egyáltalán lefordul C-ben, pedig de. :) Ahogy a cikk is írja, lehet, hogy még hatékonyabb is, mint az eredeti ciklusos megoldás, de mai compilereken és procikon már ez se biztos. Ha az embernek határozott célja van egy hekkel, és bebizonyítja, hogy ezt a célt teljesíti, hekkeljen. Ha nem, írjon olvasható kódot. Szóval ne írd le magad, ez eszement kód. :)

SebDani:
Ebben az esetben szívesen rácsapnék a kezére annak aki azt a fordítót írta, amin ez lefordul.

Elvileg minden C kompatiblis szabvány fordítón fordul. :) Ilyen laza a nyelv szintaxisa. Elő kell vennem a Kernighan-Ritchie könyvet újra, de nem azért, hogy ilyenekkel szórakoztassam a kollégáimat. :)

9 Responses to “Még egyszer az érdekes kódról”

  1. Tako Says:

    Soci: megtennéd, hogy egy kicsit - pár mondatban - írnál erről a kódról valami infót olyanoknak mint pl én (én != programozó)? Nem C tanfolyamot várok, csak egy kis magyarázatot. Gondolom baromi érdekes ha helyet kapott itt. Köszönöm!

  2. Tako Says:

    Közben után kérdeztem/néztem szóval már tárgytalan a kérés!

  3. hrongyorgy Says:

    A link nagy D-vel várja el… http://en.wikipedia.org/wiki/Duff%27s_Device

  4. Szindbad Says:

    Elnezest, hogy ide postolom, de tudja valaki ez miert dob exceptiont?

    using System;
    using System.Security.Permissions;
    using System.Windows.Forms;

    namespace foo
    {
    public class Form1 : System.Windows.Forms.Form
    {
    private System.Windows.Forms.PropertyGrid propertyGrid1;

    public Form1()
    {
    this.propertyGrid1 = new System.Windows.Forms.PropertyGrid();
    this.SuspendLayout();
    this.propertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill;
    this.propertyGrid1.SelectedObject = this.propertyGrid1;
    this.ClientSize = new System.Drawing.Size(292, 273);
    this.Controls.Add(this.propertyGrid1);
    this.ResumeLayout(false);
    }

    [STAThread]
    [FileIOPermission(SecurityAction.Deny, Read = "C:\\temp\\xxx.txt")]
    static void Main()
    {
    Application.Run(new Form1());
    }
    }
    }

  5. Soczó Zsolt Says:

    E miatt:
    this.propertyGrid1.SelectedObject = this.propertyGrid1;

    Van ennek értelme?

  6. Szindbad Says:

    Persze, azzal semmi gond nincs. Ha kiveszed a [FileIOPermission(SecurityAction.Deny, Read = “C:\\temp\\xxx.txt”)] sort, akkor le is fut rendesen. De ha lecsereled = new object()-re akkor is jon az exception…

  7. Szindbad Says:

    Persze szemantikailag sok ertelme nincs, csak demonstralni, hogy ott dobodik furcsa es erthetetlen modon egy erthetetlen exception…

  8. Soczó Zsolt Says:

    I see, most elmegyek vizsgázni, de este megnézem, elég bizarr.

  9. Szindbad Says:

    Bocs a fooldert, de ez meg erdekes lehet: Ezt meg anno a .NET 1.0 -ban fedeztem fel, es benne volt az 1.1-ben, 2.0-ban, es most benne van a 3.0-ban es a 3.5 betaban is… Szoval furcsa.

Leave a Reply