Could you hire me? Contact me if you like what I’ve done in this article and think I can create value for your company with my skills.

April 26, 2007 / by Zsolt Soczó

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. :)

Could you hire me? Contact me if you like what I’ve done in this article and think I can create value for your company with my skills.

LEAVE A COMMENT

9 COMMENTS

  • Tako April 26, 2007

    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!

  • Tako April 27, 2007

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

  • hrongyorgy April 28, 2007

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

  • Szindbad May 9, 2007

    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());
    }
    }
    }

  • Soczó Zsolt May 9, 2007

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

    Van ennek értelme?

  • Szindbad May 9, 2007

    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…

  • Szindbad May 9, 2007

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

  • Soczó Zsolt May 9, 2007

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

  • Szindbad May 9, 2007

    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.