Még egyszer az érdekes kódról
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. :)
April 26th, 2007 at 11:18 pm
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!
April 27th, 2007 at 12:00 pm
Közben után kérdeztem/néztem szóval már tárgytalan a kérés!
April 28th, 2007 at 10:38 am
A link nagy D-vel várja el… http://en.wikipedia.org/wiki/Duff%27s_Device
May 9th, 2007 at 10:14 am
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());
}
}
}
May 9th, 2007 at 10:40 am
E miatt:
this.propertyGrid1.SelectedObject = this.propertyGrid1;
Van ennek értelme?
May 9th, 2007 at 10:42 am
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…
May 9th, 2007 at 10:51 am
Persze szemantikailag sok ertelme nincs, csak demonstralni, hogy ott dobodik furcsa es erthetetlen modon egy erthetetlen exception…
May 9th, 2007 at 10:53 am
I see, most elmegyek vizsgázni, de este megnézem, elég bizarr.
May 9th, 2007 at 10:56 am
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.