8052 i tablica przekazywana do funkcji
Masz problem? Zapytaj na forum elektroda.pl
From: "Neo" <matrix_at_nospam_terramail.pl>
Subject: 8052 i tablica przekazywana do funkcji
Date: Fri, 26 Sep 2003 02:51:32 +0200
Witam,
zaczynam dopiero pisac w C (Keil) na 8052 i mam mały problemik.
Otóż deklaruję tablicę:
BYTE Registers[16];
przy starcie procka zapisuję do niej domyslne wartosci, np:
Registers[0] = 0x00;
Registers[1] = 0x20;
Registers[2] = 0x09; ... itd do 15
i jest też funkcja, której chcę przekazać wskaźnik do wybranego elementu
tablicy,
a następnie w funkcji odczytać określoną liczbę elementów począwszy od tego
przekazanego
wskaźnika. Wygląda to tak:
VOID SendData(PBYTE pbBuffer);
- przykład wywołania funkcji:
SendData((PBYTE) Registers[5]);
PROBLEM polega na tym, że dane które odczytuję w funkcji nie mają nic
wspólnego z danymi
z tymi danymi zapisanymi wczesniej do tablicy . DLACZEGO ???
Z góry dzięki,
Karol M.
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!news.nask.pl!uw.edu.pl!news.pw.edu.pl!news.itl.waw.pl!not-for-mai
From: "Jacek R. Radzikowski" <jacek_at_nospam_piranet.org>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Fri, 26 Sep 2003 03:17:03 +0000 (UTC)
Neo <matrix_at_nospam_terramail.pl> wrote:
Witam,
zaczynam dopiero pisac w C (Keil) na 8052 i mam mały problemik.
Otóż deklaruję tablicę:
BYTE Registers[16];
[...]
- prototyp funkcji:
VOID SendData(PBYTE pbBuffer);
- przykład wywołania funkcji:
SendData((PBYTE) Registers[5]);
O ile PBYTE to jest BYTE*, to powinienes przekazywac wskazanie na element,
a nie jego zawartosc. Czyli twoje wywolanie powinno wygldac tak:
SendData(&Registers[5]);
Z tego ze zmieniasz typ wnioskuje, ze kompilator pyskowal, ale ty zamiast
wziac pod uwage jego pretensje, po prostu zmieniles typ.
PROBLEM polega na tym, że dane które odczytuję w funkcji nie mają nic
wspólnego z danymi
z tymi danymi zapisanymi wczesniej do tablicy . DLACZEGO ???
No i efekty sa jakie sa. Gratuluje wspanialego pomyslu na skomplikowanie
sobie zycia :)
A na przyszlosc polecam wlaczyc wszelkie mozliwe ostrzezenia i testy
poprawnosci i dokladnie sie zastanowic dlaczego sie pojawily.
pzdr.
j.
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!fu-berlin.de!uni-berlin.de!glubsche.ukbf.fu-berlin.DE!not-for-mai
From: Waldemar Krzok <waldemar.krzok_at_nospam_ukbf.fu-berlin.de>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Fri, 26 Sep 2003 09:59:43 +0200
Jacek R. Radzikowski:
O ile PBYTE to jest BYTE*, to powinienes przekazywac wskazanie na element,
a nie jego zawartosc. Czyli twoje wywolanie powinno wygldac tak:
SendData(&Registers[5]);
albo SendData(Registers+5);
co do reszty to podpisuję się wszystkimi nogami.
Waldek
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!news.itl.waw.pl!not-for-mai
From: "Jacek R. Radzikowski" <jacek_at_nospam_piranet.org>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Fri, 26 Sep 2003 13:30:45 +0000 (UTC)
Waldemar Krzok <waldemar.krzok_at_nospam_ukbf.fu-berlin.de> wrote:
Jacek R. Radzikowski:
O ile PBYTE to jest BYTE*, to powinienes przekazywac wskazanie na element,
a nie jego zawartosc. Czyli twoje wywolanie powinno wygldac tak:
SendData(&Registers[5]);
albo SendData(Registers+5);
Mozna. Ale, brrr... az mnie zeby rozbolaly jak zobaczylem ten zapis.
Jak sie dopiero uczy to niech lepiej niech nie siega do sztuczek.
j.
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Krzysztof Skoroniak" <ananass_at_nospam_wpp.pll>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Fri, 26 Sep 2003 18:41:30 +0200
Użytkownik "Jacek R. Radzikowski" <jacek_at_nospam_piranet.org> napisał w wiadomości
news:bl1f25$3mb$1_at_nospam_www.itl.waw.pl...
albo SendData(Registers+5);
Mozna. Ale, brrr... az mnie zeby rozbolaly jak zobaczylem ten zapis.
Jak sie dopiero uczy to niech lepiej niech nie siega do sztuczek.
jest to jak najbardziej poprawny zapis jesli chodzi o jezyk C
nie ma tutaj zadnych sztuczek
powiedzialbym ze wieksze komplikacje sa z pobieraniem
adresu dla 5 elementu tablicy
ale rzeczywiscie jak sie uczy no to moze ten bedzie dla niego
bardziej zrozumialy
pozdr
Krzysztof
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!news.itl.waw.pl!not-for-mai
From: "Jacek R. Radzikowski" <jacek_at_nospam_piranet.org>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Fri, 26 Sep 2003 17:16:38 +0000 (UTC)
Krzysztof Skoroniak <ananass_at_nospam_wpp.pll> wrote:
Użytkownik "Jacek R. Radzikowski" <jacek_at_nospam_piranet.org> napisał w wiadomości
news:bl1f25$3mb$1_at_nospam_www.itl.waw.pl...
albo SendData(Registers+5);
Mozna. Ale, brrr... az mnie zeby rozbolaly jak zobaczylem ten zapis.
Jak sie dopiero uczy to niech lepiej niech nie siega do sztuczek.
jest to jak najbardziej poprawny zapis jesli chodzi o jezyk C
nie ma tutaj zadnych sztuczek
Ależ oczywiście że jest. Tylko że korzystajac z samych poprawnych
konstrukcji języka można stworzyc piękny, czytelny program, jak i
bełkotliwego potworka z ogarnięciem którego nawet sam autor będzie
mieć problemy. A stosowanie takich asembleropochodnych "wytrychow"
sprzyja powstawaniu dzieł załapujących sie do drugiej z ww. kategorii.
powiedzialbym ze wieksze komplikacje sa z pobieraniem
adresu dla 5 elementu tablicy
Dobremu kompilatorowi nie powinno to sprawic różnicy. A jesli nawet
koszt odwołania sie do n-tego elementu tablicy bedzie wiekszy to, o
ile nie szukamy pojedyńczych cykli oszczędności, IMHO czytelnosc
zapisu jest warta takiego poświęcenia.
ale rzeczywiscie jak sie uczy no to moze ten bedzie dla niego
bardziej zrozumialy
Dokładnie. Lepiej najpierw nauczyć się ładnego stylu programowania
a później optymalizacji za wszelką cenę, bo w przeciwnym przypadku
bardzo łatwo natrafić na problemy podobne do tego, który rozpoczął
wątek i nie mieć pojęcia jak się z nich wydostać.
pzdr.
j.
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!wsisiz.edu.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Krzysztof Skoroniak" <ananass_at_nospam_wpp.pll>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Fri, 26 Sep 2003 20:25:12 +0200
Użytkownik "Jacek R. Radzikowski" <jacek_at_nospam_piranet.org> napisał w wiadomości
news:bl1s9m$7b2$1_at_nospam_www.itl.waw.pl...
Dobremu kompilatorowi nie powinno to sprawic różnicy. A jesli nawet
koszt odwołania sie do n-tego elementu tablicy bedzie wiekszy to, o
ile nie szukamy pojedyńczych cykli oszczędności, IMHO czytelnosc
zapisu jest warta takiego poświęcenia.
tak wiem troche sie zagalopowalem
pisze w C juz dosyc dawno i przyznam szczerze ze dla mnie
bardziej czytelny jest zapis
SendData(Registers+5);
od
SendData(&Registers[5]);
a i tez trzeba przyznac ze o wiele mniej jest przy nim pisania:-)
ale jak slusznie zauwazyles dla poczatkujacego zdecydowanie
polecalbym druga forme
pozdrawiam
Krzysztof
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!news.internetia.pl!mimuw.edu.pl!news.mimuw.edu.pl!uw.edu.pl!news.pw.edu.pl!news.itl.waw.pl!not-for-mai
From: "Jacek R. Radzikowski" <jacek_at_nospam_piranet.org>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Fri, 26 Sep 2003 18:40:35 +0000 (UTC)
Krzysztof Skoroniak <ananass_at_nospam_wpp.pll> wrote:
Użytkownik "Jacek R. Radzikowski" <jacek_at_nospam_piranet.org> napisał w wiadomości
news:bl1s9m$7b2$1_at_nospam_www.itl.waw.pl...
Dobremu kompilatorowi nie powinno to sprawic różnicy. A jesli nawet
koszt odwołania sie do n-tego elementu tablicy bedzie wiekszy to, o
ile nie szukamy pojedyńczych cykli oszczędności, IMHO czytelnosc
zapisu jest warta takiego poświęcenia.
tak wiem troche sie zagalopowalem
pisze w C juz dosyc dawno i przyznam szczerze ze dla mnie
bardziej czytelny jest zapis
SendData(Registers+5);
od
SendData(&Registers[5]);
No cóż. Kwestia biu^Wgustu :) Ja też pisze w C juz od ladnych kilku lat i
praktyka nauczyła mnie (dość bolesnie) unikać operacji arytmetycznych na
wskaźnikach.
W swoich programach z arytmetyki wskaźnikowej uzżwam tylko inkrementacji i
dekrementacji, a reszte zalatwiam indeksowaniem tablicowym. Jest to dla mnie
(i nie tylko) o wiele czytelniejsze i "poprwne politycznie" ;)
A dla kompilatora to i tak wszystko jedno.
a i tez trzeba przyznac ze o wiele mniej jest przy nim pisania:-)
ale jak slusznie zauwazyles dla poczatkujacego zdecydowanie
polecalbym druga forme
Amen. :)
pzdr.
j.
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!newsfeed.gazeta.pl!news.e-wro.pl!not-for-mai
From: J.F. <jfox_nospam_at_nospam_poczta.onet.pl>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Sat, 27 Sep 2003 10:54:54 +0200
On Fri, 26 Sep 2003 18:40:35 +0000 (UTC), Jacek R. Radzikowski wrote:
tak wiem troche sie zagalopowalem
pisze w C juz dosyc dawno i przyznam szczerze ze dla mnie
bardziej czytelny jest zapis
SendData(Registers+5);
od
SendData(&Registers[5]);
No cóż. Kwestia biu^Wgustu :) Ja też pisze w C juz od ladnych kilku lat i
praktyka nauczyła mnie (dość bolesnie) unikać operacji arytmetycznych na
wskaźnikach.
Ale myslisz ze Registers[5] co robi ?
Ba - w prawdziwym C [za keila i inne wynalazki nie recze]
Registers[5] == 5[Registers]
W swoich programach z arytmetyki wskaźnikowej uzżwam tylko inkrementacji i
dekrementacji, a reszte zalatwiam indeksowaniem tablicowym. Jest to dla mnie
(i nie tylko) o wiele czytelniejsze i "poprwne politycznie" ;)
A dla kompilatora to i tak wszystko jedno.
Roznie bywa. Wczesne Turbo C operacji tablicowych nie potrafilo
zoptymalizowac i co chwile obliczalo adres.
P.S. Panowie - a w ogole to jestescie pewni ze ta
SendData(PBYTE) to wysyla obszar danych ?
Bez podania dlugosci to by \0 bylo ogranicznikiem tekstu
do wyslania .. czyli nie mozna by 00h przeslac .. w prockach
to chyba malo uzyteczna sprawa..
J.
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!news.nask.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Krzysztof Skoroniak" <ananass_at_nospam_wpp.pll>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Sat, 27 Sep 2003 11:21:05 +0200
Użytkownik "J.F." <jfox_nospam_at_nospam_poczta.onet.pl> napisał w wiadomości
news:vvfanv0vj4lhiegut9uqqqek64oafv8shp_at_nospam_4ax.com...
P.S. Panowie - a w ogole to jestescie pewni ze ta
SendData(PBYTE) to wysyla obszar danych ?
Bez podania dlugosci to by \0 bylo ogranicznikiem tekstu
do wyslania .. czyli nie mozna by 00h przeslac .. w prockach
to chyba malo uzyteczna sprawa..
co racja to racja
bo nie wiem jak kolega ma zamiar sprawdzic przesuwajac sie
po kolejnych elementach w tablicy ze to juz jest ostatni element
i ze przy nastepnym nie wyjdzie poza obszar pamieci
zarezerwowany dla tej wlasnie tablicy
pozdrawiam
Krzysztof
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Neo" <matrix_at_nospam_terramail.pl>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Sat, 27 Sep 2003 12:03:17 +0200
długosc jest w pewnym rejestrze dostępnym globalnie, głównie chodzilo tylko
o to, ze nie mialo byc Registers[5] tylko Registers+5 i tu był czeski błąd
spowodowany chyba zaćmieniem umysłu.
Generalnie procedura jest żywcem wycięta z przykładu napisanego przez Texas
Instruments, tulko tam był przekazywany adres calej tablicy a ja z rozpedu
dodałem na końcu ten [].
Po skorygowaniu działa prawidłowo, jeszcze raz dziekuje za sugestie.
Pozdrawiam, Karol.
"Krzysztof Skoroniak" <ananass_at_nospam_wpp.pll> wrote in message
news:bl3ks8$358$1_at_nospam_nemesis.news.tpi.pl...
Użytkownik "J.F." <jfox_nospam_at_nospam_poczta.onet.pl> napisał w wiadomości
news:vvfanv0vj4lhiegut9uqqqek64oafv8shp_at_nospam_4ax.com...
P.S. Panowie - a w ogole to jestescie pewni ze ta
SendData(PBYTE) to wysyla obszar danych ?
Bez podania dlugosci to by \0 bylo ogranicznikiem tekstu
do wyslania .. czyli nie mozna by 00h przeslac .. w prockach
to chyba malo uzyteczna sprawa..
co racja to racja
bo nie wiem jak kolega ma zamiar sprawdzic przesuwajac sie
po kolejnych elementach w tablicy ze to juz jest ostatni element
i ze przy nastepnym nie wyjdzie poza obszar pamieci
zarezerwowany dla tej wlasnie tablicy
pozdrawiam
Krzysztof
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!news.itl.waw.pl!not-for-mai
From: "Jacek R. Radzikowski" <jacek_at_nospam_piranet.org>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Sat, 27 Sep 2003 22:09:34 +0000 (UTC)
J.F. <jfox_nospam_at_nospam_poczta.onet.pl> wrote:
On Fri, 26 Sep 2003 18:40:35 +0000 (UTC), Jacek R. Radzikowski wrote:
tak wiem troche sie zagalopowalem
pisze w C juz dosyc dawno i przyznam szczerze ze dla mnie
bardziej czytelny jest zapis
SendData(Registers+5);
od
SendData(&Registers[5]);
No cóż. Kwestia biu^Wgustu :) Ja też pisze w C juz od ladnych kilku lat i
praktyka nauczyła mnie (dość bolesnie) unikać operacji arytmetycznych na
wskaźnikach.
Ale myslisz ze Registers[5] co robi ?
Ba - w prawdziwym C [za keila i inne wynalazki nie recze]
Registers[5] == 5[Registers]
alez ja o tym wiem. Jakby pojsc dalej tym tropem to mozna dojsc do
wmiosku ze jezyki wysokiego poziomu nie roznia sie od maszynowki.
Zreszta w C wskazniki i tablice sa roznowazne i mozna je stosowac
zamiennie, zaleznie od humoru i potrzeby.
Mi chodzilo o zapis i operacje na poziomie zrodel w C. Tutaj bezposrednia
arytmetyka na wskaznikach potrafi czasami niezle namieszac.
W swoich programach z arytmetyki wskaźnikowej uzżwam tylko inkrementacji i
dekrementacji, a reszte zalatwiam indeksowaniem tablicowym. Jest to dla mnie
(i nie tylko) o wiele czytelniejsze i "poprwne politycznie" ;)
A dla kompilatora to i tak wszystko jedno.
Roznie bywa. Wczesne Turbo C operacji tablicowych nie potrafilo
zoptymalizowac i co chwile obliczalo adres.
Ale to juz jest blad kompilatora i jesli taki babol sie pojawia to
faktycznie trzeba nauczyc sie go jakos obchodzic. Ale to jest problem
ortogonalny do ogolnych zasad pisania czytelnych i zrozumialych
programow.
P.S. Panowie - a w ogole to jestescie pewni ze ta
SendData(PBYTE) to wysyla obszar danych ?
Bez podania dlugosci to by \0 bylo ogranicznikiem tekstu
do wyslania .. czyli nie mozna by 00h przeslac .. w prockach
to chyba malo uzyteczna sprawa..
Ja zalozylem ze autor jakos sobie z tym poradzil :)
pzdr.
j.
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!wsisiz.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mai
From: J.F. <jfox_nospam_at_nospam_poczta.onet.pl>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Sun, 28 Sep 2003 10:27:00 +0200
On Sat, 27 Sep 2003 22:09:34 +0000 (UTC), Jacek R. Radzikowski wrote:
alez ja o tym wiem. Jakby pojsc dalej tym tropem to mozna dojsc do
wmiosku ze jezyki wysokiego poziomu nie roznia sie od maszynowki.
C to faktycznie nie bardzo :-)
Zreszta w C wskazniki i tablice sa roznowazne i mozna je stosowac
zamiennie, zaleznie od humoru i potrzeby.
Oj uwazaj - sa delikatne roznice. W prostych konstrukcjach nie,
ale w bardziej zaawansowanych wyjda..
Mi chodzilo o zapis i operacje na poziomie zrodel w C. Tutaj bezposrednia
arytmetyka na wskaznikach potrafi czasami niezle namieszac.
Ale identycznie namieszaja ci odwolania tablicowe.
Dla czlowieka zas. Jesli chodzi o 5-ty element tablicy - Registers[5]
wydaje sie naturalne. Ale jesli chodzi o elementy od 5-tego dalej ...
hm, no niby faktycznie Registers+5 moze zmylic, ale &...[5] tez.
Roznie bywa. Wczesne Turbo C operacji tablicowych nie potrafilo
zoptymalizowac i co chwile obliczalo adres.
Ale to juz jest blad kompilatora
Powiedzmy nie blad a wada. Ciagle generowalo to poprawny program.
J.
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.task.gda.pl!news.atman.pl!news.nask.pl!uw.edu.pl!news.pw.edu.pl!news.itl.waw.pl!not-for-mai
From: "Jacek R. Radzikowski" <jacek_at_nospam_piranet.org>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Mon, 29 Sep 2003 04:32:44 +0000 (UTC)
J.F. <jfox_nospam_at_nospam_poczta.onet.pl> wrote:
On Sat, 27 Sep 2003 22:09:34 +0000 (UTC), Jacek R. Radzikowski wrote:
alez ja o tym wiem. Jakby pojsc dalej tym tropem to mozna dojsc do
wmiosku ze jezyki wysokiego poziomu nie roznia sie od maszynowki.
C to faktycznie nie bardzo :-)
Nie popadajmy w przesade. A ze daje sie w nim stosowac sztuczki asemblerowe
to inna sprawa. Zreszta ten jezyk byl projektowany z mysla o oprogramowaniu
niskopoziomowym, wiec wszystko sie zgadza z zalozeniami:)
Zreszta w C wskazniki i tablice sa roznowazne i mozna je stosowac
zamiennie, zaleznie od humoru i potrzeby.
Oj uwazaj - sa delikatne roznice. W prostych konstrukcjach nie,
ale w bardziej zaawansowanych wyjda..
"Kazda operacje, ktora mozna przeprowadzic za pomoca indeksowania
tablicy, mozna rowniez wykonac za pomoca wskaznikow" - tako prawia K&R.
Jesli chodzi Ci o wyglad kodu po kompilacji to nie bede dyskutowac, bo
nigdy nie chcialo mi sie wgryzac w kod wynikowy, ale pewnie nie wyjdzie
to samo (choc to juz zalezy od inteligencji optymalizatora)
Mi chodzilo o zapis i operacje na poziomie zrodel w C. Tutaj bezposrednia
arytmetyka na wskaznikach potrafi czasami niezle namieszac.
Ale identycznie namieszaja ci odwolania tablicowe.
hm?
Choc na prhn niedawno byl przyklad bardzo fajnego programu w C :)
Zreszta namieszac mozna zawsze. Tylko czasami trzeba sie wiecej
nad tym napracowac, czasami mniej. Stosowanie arytmetyki wskaznikowej
tam gdzie mamy do czynienia z tablicami zdecydowanie zmniejsza
wymagany naklad pracy :)
Dla czlowieka zas. Jesli chodzi o 5-ty element tablicy - Registers[5]
wydaje sie naturalne. Ale jesli chodzi o elementy od 5-tego dalej ...
O to mi chodzi. Procesor i tak nie bedzie analizowac algorytmu, a
czlowiekowi znacznie pomoze zrozumiec.
hm, no niby faktycznie Registers+5 moze zmylic, ale &...[5] tez.
zalezy od kontekstu. czasmi lepsza jest arytmetyka na wskaznikach...
ale tu z wyborem trzeba byc bardzo ostroznym i miec troche doswiadczenia.
Roznie bywa. Wczesne Turbo C operacji tablicowych nie potrafilo
zoptymalizowac i co chwile obliczalo adres.
Ale to juz jest blad kompilatora
Powiedzmy nie blad a wada. Ciagle generowalo to poprawny program.
Jak zwal tak zwal. trzeba bylo uwazac. Ale niech bedzie ze wada :)
J.
j.
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!newsfeed.tpinternet.pl!newsfeed.gazeta.pl!news.ipartners.pl!not-for-mai
From: Marcin Stanisz <mstanisz_at_nospam_poczta.onet.pl>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: 29 Sep 2003 08:08:52 GMT
W artykule <bl8clc$66s$1_at_nospam_www.itl.waw.pl> Jacek R. Radzikowski napisal(a):
Choc na prhn niedawno byl przyklad bardzo fajnego programu w C :)
Jo! A ja pamiętam (chyba z PCKuriera) przykład z jakiegoś konkursu C.
W wywołaniu programu dawało się dwie liczby, a program generował
w trybie tekstowym mapę świata z zaznaczonym położeniem (te dwie
liczby). Treść też miał niezłą i zajmował w sumie kilka linijek...
Marcin Stanisz
--
"A lie will go round the world before the truth has got its boots on"
Terry Pratchett, "Truth"
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!news.itl.waw.pl!not-for-mai
From: "Jacek R. Radzikowski" <jacek_at_nospam_piranet.org>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Mon, 29 Sep 2003 21:25:30 +0000 (UTC)
Marcin Stanisz <mstanisz_at_nospam_poczta.onet.pl> wrote:
W artykule <bl8clc$66s$1_at_nospam_www.itl.waw.pl> Jacek R. Radzikowski napisal(a):
Choc na prhn niedawno byl przyklad bardzo fajnego programu w C :)
Jo! A ja pamiętam (chyba z PCKuriera) przykład z jakiegoś konkursu C.
W wywołaniu programu dawało się dwie liczby, a program generował
w trybie tekstowym mapę świata z zaznaczonym położeniem (te dwie
liczby). Treść też miał niezłą i zajmował w sumie kilka linijek...
Ja kiedys znalazlem programik,ktory w kilku linijkach renderowal przy
pomocy ray-tracingu a nastepnie drukowal na terminalu oswietlony
torus.
Wiecej zajecia na dlugie zimowe wieczory mozna znalezc na
http://www.ioccc.org/:)
pzdr.
j.
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!newsfeed.gazeta.pl!opal.futuro.pl!szmaragd.futuro.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Piotr Wyderski" <piotr.wyderskiREMOWE_at_nospam_wp.pl>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Mon, 29 Sep 2003 14:27:13 +0200
Jacek R. Radzikowski wrote:
Zreszta ten jezyk byl projektowany z mysla o oprogramowaniu
niskopoziomowym, wiec wszystko sie zgadza z zalozeniami:)
Wiesz, stwierdzenie, ze jezyk C byl projektowany z jakakolwiek
mysla to bardzo ryzykowna teza. ;-) Nie jestem nawet pewien, czy
on w ogole byl projektowany...
Pozdrawiam
Piotr Wyderski
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mai
From: J.F. <jfox_nospam_at_nospam_poczta.onet.pl>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Mon, 29 Sep 2003 22:27:03 +0200
On Mon, 29 Sep 2003 14:27:13 +0200, Piotr Wyderski wrote:
Jacek R. Radzikowski wrote:
Zreszta ten jezyk byl projektowany z mysla o oprogramowaniu
niskopoziomowym, wiec wszystko sie zgadza z zalozeniami:)
Wiesz, stwierdzenie, ze jezyk C byl projektowany z jakakolwiek
mysla to bardzo ryzykowna teza. ;-) Nie jestem nawet pewien, czy
on w ogole byl projektowany...
Oczywiscie ze byl.
Jezyk C : jezyk w ktorym napisano Unix.
Unix : system napisany w jezyku C :-)
J.
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!newsfeed.media.kyoto-u.ac.jp!newsfeed.gazeta.pl!news.icm.edu.pl!not-for-mai
From: Wojt <rwxrwx_at_nospam_USUNTO.poczta.onet.pl>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Mon, 29 Sep 2003 23:17:22 +0200
Piotr Wyderski wrote:
Wiesz, stwierdzenie, ze jezyk C byl projektowany z jakakolwiek
mysla to bardzo ryzykowna teza. ;-) Nie jestem nawet pewien, czy
on w ogole byl projektowany...
Przypadkiem z C nie było tak: C=B++ ;)
W.
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!uw.edu.pl!news.pw.edu.pl!news.itl.waw.pl!not-for-mai
From: "Jacek R. Radzikowski" <jacek_at_nospam_piranet.org>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Mon, 29 Sep 2003 21:21:12 +0000 (UTC)
Piotr Wyderski <piotr.wyderskiREMOWE_at_nospam_wp.pl> wrote:
Jacek R. Radzikowski wrote:
Zreszta ten jezyk byl projektowany z mysla o oprogramowaniu
niskopoziomowym, wiec wszystko sie zgadza z zalozeniami:)
Wiesz, stwierdzenie, ze jezyk C byl projektowany z jakakolwiek
mysla to bardzo ryzykowna teza. ;-) Nie jestem nawet pewien, czy
on w ogole byl projektowany...
Byl, byl. Nawet skladnie daje sie dosc ladnie zapisac w BNF.
Chyba ze pomyliles C z Perlem. Na temat genezy skladni tego jezyka
powstalo kilka dosc interesujacych teorii, niedawno z jedna mozna
bylo sie zapoznac na prhn ;)
pzdr.
j.
=======
From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Tue, 30 Sep 2003 02:26:00 +0200
Użytkownik "Jacek R. Radzikowski" <jacek_at_nospam_piranet.org> napisał w
wiadomości news:bla7o8$lu5$1_at_nospam_www.itl.waw.pl
Chyba ze pomyliles C z Perlem. Na temat genezy skladni tego jezyka
powstalo kilka dosc interesujacych teorii,
Domyślam się, że definitywnie odbiegających od oficjalnej wykładni zawartej
w The Camel Book? ;)
Korzystając z tego ostatniego zawsze miałem wrażenie, że Larry najpierw
powiedział "hop", a potem przez parę lat przekonywał się w co wskoczył (Co
nie zmienia faktu, że chciałbym mieć taką wyobraźnię )
;-)))
niedawno z jedna mozna bylo sie zapoznac na prhn ;)
Próbowałem wygooglować, ale nie trafiłem. Masz może jakiś namiar?
--
MDz
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!news.nask.pl!uw.edu.pl!news.pw.edu.pl!news.itl.waw.pl!not-for-mai
From: "Jacek R. Radzikowski" <jacek_at_nospam_piranet.org>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Tue, 30 Sep 2003 00:54:05 +0000 (UTC)
Marek Dzwonnik <mdz_at_nospam_message.pl> wrote:
Użytkownik "Jacek R. Radzikowski" <jacek_at_nospam_piranet.org> napisał w
wiadomości news:bla7o8$lu5$1_at_nospam_www.itl.waw.pl
Chyba ze pomyliles C z Perlem. Na temat genezy skladni tego jezyka
powstalo kilka dosc interesujacych teorii,
Domyślam się, że definitywnie odbiegających od oficjalnej wykładni zawartej
w The Camel Book? ;)
Dosc mocno. I lepiej przystajacych do rzeczywistosci :)
Korzystając z tego ostatniego zawsze miałem wrażenie, że Larry najpierw
powiedział "hop", a potem przez parę lat przekonywał się w co wskoczył (Co
nie zmienia faktu, że chciałbym mieć taką wyobraźnię )
To Ty chyba BrainFucka nie widziales :) (tak, jest taki jezyk.
Nie, nie wiem po co i do czego:))
BTW. BF powinien dac sie ladnie nadawac na kod maszynowy jakiegos
procesora:)
niedawno z jedna mozna bylo sie zapoznac na prhn ;)
Próbowałem wygooglować, ale nie trafiłem. Masz może jakiś namiar?
<slrn.pl.bmionr.o1.illidan-kasprzol_at_nospam_kasprzol.mieszka.sobie.na.o2.pl>
j.
PS: perl jest bardzo przyjemnym jezykiem :)
========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!news.internetia.pl!mimuw.edu.pl!news.mimuw.edu.pl!uw.edu.pl!news.pw.edu.pl!news.itl.waw.pl!not-for-mai
From: "Jacek R. Radzikowski" <jacek_at_nospam_piranet.org>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Tue, 30 Sep 2003 01:08:41 +0000 (UTC)
Marek Dzwonnik <mdz_at_nospam_message.pl> wrote:
Użytkownik "Jacek R. Radzikowski" <jacek_at_nospam_piranet.org> napisał w
wiadomości news:bla7o8$lu5$1_at_nospam_www.itl.waw.pl
Chyba ze pomyliles C z Perlem. Na temat genezy skladni tego jezyka
powstalo kilka dosc interesujacych teorii,
Domyślam się, że definitywnie odbiegających od oficjalnej wykładni zawartej
w The Camel Book? ;)
Dosc mocno. I lepiej przystajacych do rzeczywistosci :)
Korzystając z tego ostatniego zawsze miałem wrażenie, że Larry najpierw
powiedział "hop", a potem przez parę lat przekonywał się w co wskoczył (Co
nie zmienia faktu, że chciałbym mieć taką wyobraźnię )
To Ty chyba BrainFucka nie widziales :) (tak, jest taki jezyk.
Nie, nie wiem po co i do czego:))
BTW. BF powinien sie niezle nadawac na kod maszynowy jakiegos
procesora :)
niedawno z jedna mozna bylo sie zapoznac na prhn ;)
Próbowałem wygooglować, ale nie trafiłem. Masz może jakiś namiar?
<slrn.pl.bmionr.o1.illidan-kasprzol_at_nospam_kasprzol.mieszka.sobie.na.o2.pl>
j.
PS: perl jest bardzo przyjemnym jezykiem :)
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!pwr.wroc.pl!panorama.wcss.wroc.pl!not-for-mai
From: "Piotr Wyderski" <piotr.wyderskiREMOWE_at_nospam_wp.pl>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Wed, 1 Oct 2003 17:52:18 +0200
Jacek R. Radzikowski wrote:
Nawet skladnie daje sie dosc ladnie zapisac w BNF.
Nowsza skladnia jest OK, starsza jest mniej czytelna.
Ale mnie nie o skladnie chodzi; jednym z najczesciej
wystepujacych slow w definikcji C i C++ jest "znaczenie:
nie zdefiniowano". :-)
Chyba ze pomyliles C z Perlem.
Na pewno nie pomylilem, ale Perl to jeszcze wiekszy dziwolag. :-)
Pozdrawiam
Piotr Wyderski
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!news.cyf-kr.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!news.icm.edu.pl!not-for-mai
From: Wojt <rwxrwx_at_nospam_USUNTO.poczta.onet.pl>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Fri, 26 Sep 2003 20:39:27 +0200
Jacek R. Radzikowski wrote:
albo SendData(Registers+5);
Mozna. Ale, brrr... az mnie zeby rozbolaly jak zobaczylem ten zapis.
Jak sie dopiero uczy to niech lepiej niech nie siega do sztuczek.
Przecież to żadna sztuczka tylko prosta arytmetyka na wskaźnikach. Ja
bym skomplikował :) :
PBYTE p = Registers;
p += 5; // zmieniamy p żeby wybrać dowolny element z Registers[]
SendData(p);
W.
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Neo" <matrix_at_nospam_terramail.pl>
Subject: Re: 8052 i tablica przekazywana do funkcji
Date: Fri, 26 Sep 2003 10:12:13 +0200
Użytkownik "Jacek R. Radzikowski" <jacek_at_nospam_piranet.org> napisał w wiadomości
[...]
O ile PBYTE to jest BYTE*, to powinienes przekazywac wskazanie na element,
a nie jego zawartosc. Czyli twoje wywolanie powinno wygldac tak:
SendData(&Registers[5]);
Z tego ze zmieniasz typ wnioskuje, ze kompilator pyskowal, ale ty zamiast
wziac pod uwage jego pretensje, po prostu zmieniles typ.
[..]
) Dzięki za odpowiedz i sorry za lamerstwo. O trzeciej w nocy nie da się
już myśleć.
Pozdrawiam,
Karol M.
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!news.nask.pl!newsfeed.gazeta.pl!news.gazeta.pl!not-for-mai