8052 i tablica przekazywana do funkcji

Loading thread data ...

[...]

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.

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.

Reply to
Jacek R. Radzikowski

Jacek R. Radzikowski:

albo SendData(Registers+5);

co do reszty to podpisuję się wszystkimi nogami.

Waldek

Reply to
Waldemar Krzok

Mozna. Ale, brrr... az mnie zeby rozbolaly jak zobaczylem ten zapis. Jak sie dopiero uczy to niech lepiej niech nie siega do sztuczek.

j.

Reply to
Jacek R. Radzikowski
Reply to
Krzysztof Skoroniak

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.

Amen. :)

pzdr. j.

Reply to
Jacek R. Radzikowski

Ale myslisz ze Registers[5] co robi ? Ba - w prawdziwym C [za keila i inne wynalazki nie recze] Registers[5] == 5[Registers]

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.

Reply to
J.F.

C to faktycznie nie bardzo :-)

Oj uwazaj - sa delikatne roznice. W prostych konstrukcjach nie, ale w bardziej zaawansowanych wyjda..

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.

Powiedzmy nie blad a wada. Ciagle generowalo to poprawny program.

J.

Reply to
J.F.

W artykule <bl8clc$66s$ snipped-for-privacy@www.itl.waw.pl> Jacek R. Radzikowski napisal(a):

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

Reply to
Marcin Stanisz

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

Reply to
Piotr Wyderski

Oczywiscie ze byl. Jezyk C : jezyk w ktorym napisano Unix. Unix : system napisany w jezyku C :-)

J.

Reply to
J.F.

Przypadkiem z C nie było tak: C=B++ ;)

W.

Reply to
Wojt
Reply to
Marek Dzwonnik

Dosc mocno. I lepiej przystajacych do rzeczywistosci :)

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

snipped-for-privacy@kasprzol.mieszka.sobie.na.o2.pl>

j.

PS: perl jest bardzo przyjemnym jezykiem :)

Reply to
Jacek R. Radzikowski

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

Na pewno nie pomylilem, ale Perl to jeszcze wiekszy dziwolag. :-)

Pozdrawiam Piotr Wyderski

Reply to
Piotr Wyderski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.