-
31. Data: 2010-02-18 09:54:16
Temat: Re: [C++] Sprawdzenie nulla dla struktury
Od: "GrzybSon" <m...@k...pl>
Użytkownik "Jacek Czerwinski" <...@...z.pl> napisał w wiadomości
news:hlhf2g$f70$1@news.onet.pl...
> Łukasz 'Maly' Ostrowski pisze:
>> On Wed, 17 Feb 2010 12:29:02 +0100, GrzybSon wrote:
>>>> Czytałeś w życiu jakąs ksiazkę o C? Sam ten koszmar napisałes czy od
>>>> kogoś?
>>>> A co do używania "union", nie zyczę Ci żeby unie ci paluchy urwały, bo
>>>> i tak urwą.
>>> Słuchaj ja nie piszę wogóle w C++ tylko w C# i nie zamierzam teraz
>>> uzewnętrzniać się czemu jest taki kod, w C++
>>> a nie inny - poprostu moim zadaniem jest zrobić zarządzalnego wrapera.
>>
>> W C# w którym "piszesz" umiesz porównac value-type z nullem? Dobry
>> jesteś.
>
> Wiesz, rózne ludzkie zoo jest tu na grupie, spóznieni studenci itd.
> Potrafię zrozumieć choć nie zaakceptować.
>
> Tu gośc się przestawia, że chodzi nie o szkółkę ale o jakąs produkcję.
> Rozumiem, każdy chce na chlebek i do chlebka.
>
> Ale myślę o kretynie, który zatrudnił naszego uroczego rozmówcę jako
> programistę a nie ciecia i jak na razie go nie zwolnił. Przecież na code
> review ani na testy też nie wysupła bo braknie mu na 'przyjaciółkę'.
> Serdecznie mu życzę, żeby dwóch śmiertelnie poważnych panów ze skórzanymi
> teczkami i piórami po dwieście dolców mu wytłumaczy o co chodzi i dlaczego
> tak dużo.
>
> <do programistow>
> Rozumiem, że ktoś na jakimś etapie może nie znać śpiewająco referencji
> języka i biblioteki. Ale jak nie odróżnia faktu skompilowania programu od
> jego działania, głęboko 'wierzy w siebie', wytrenował manipulacyjne
> zagrywki 'pewnie nie wiesz, skoro nie powiesz', klepie znaki specjalne bez
> zrozumienia ale aż do skutku, to ja przepraszam. Mam nadzieję nie miec
> tego kodu w maszynce do mięsa ani na OIOM jak mnie będą reanimować.
> </do programistow>
Nic tak nie denerwuje jak jakiś patafian, któremu wydaje się, że już
pozjadał wszystkie rozumy,
i jest guru programowania, mówi najpierw, rozwiązanie tego problemu jest
proste, a
na pytanie ale jakie to rozwiązanie to słyszę sorry ale nie wiem, zajrzyj do
książki.
To po kiego grzyba się odzywasz, siedź cicho i daj się innym mądrzejszym
wypowiedzieć.
>
> Chyba że w zatrudnieniu chodzi o to, jak mówią panowie z piórami, 'relacje
> intymne', ale wtedy po co w ogóle udawac że się programuje. A panom życzę
> wymiany piór na lepsze modele po pięćset dolców. Z tym że chciałbym
> jeszcze żywy o tych piórach przeczytać.
>
>
>
>
>
>
-
32. Data: 2010-02-18 10:07:38
Temat: Re: [C++] Sprawdzenie nulla dla struktury
Od: "GrzybSon" <m...@k...pl>
Użytkownik "Łukasz 'Maly' Ostrowski" <m...@U...pl> napisał w wiadomości
news:ooc6nc4igkw0.gfm4k8thtl9k.dlg@40tude.net...
> On Thu, 18 Feb 2010 09:40:47 +0100, GrzybSon wrote:
>
>> Użytkownik "Jędrzej Dudkiewicz" <j...@g...com> napisał w
>> wiadomości news:hlh87d$ngd$1@news.onet.pl...
>>> Ale przecież w tym przypadku to jest zawsze prawda, to po co ten warunek
>>> tam umieszczać?
>>
>> Racja.
>> Wkońcu skonsultowałem się ze specem od C++ i okazuje się, że unia zawsze
>> ma
>> wypełnione struktury domyślnymi wartościami
>
> Huh? Kto jest rzekomym specem od C++? Sprzątaczka firmowa? ;-)
Sprzątaczka programuje tylko ... pralki :)
Widzę
>
> W czymkolwiek bez explicit inicjalizacji będą śmieci z memory
> allokatora.
>
>> (inaczej jest w C#),
>
> Unie w C#? Czy "inaczej" == "struktury NIE SĄ inicjowane domyślnymi
> wartościami w C#"? Pogrąża sie Kolega powoli, acz stopniowo.
Nie pogrążam tylko nie zakumałeś o czym mowa:
struct TopStruct
{
int i;
string komunikat;
NestedStruct nested;
}
struct NestedStruct
{
InnerStruct inner;
}
jeżeli teraz wykonam taki kod
TopStruct str = new TopStruct();
to komunikat będzie nullem
tak samo jak nested
i będzie miało wartość 0
Inaczej to wygląda w C++ gdzie po wywołaniu memseta na TopStruct zostaje
odrazu wypełniona wartościami cała struktura
TopStruct razem z jej zagnieżdżeniami. Może i tam są śmieci, ale jakieś
wartości są.
>
>> więc to sprawdzenie rzeczywiście nie ma sensu. Jedynie
>> co muszę zrobić to sprawdzać poszczególne pola w strukturze czy są
>> zainicjowane jakimiś sensownymi wartościami (mówię tu np. o char *, który
>> jest odpowiednikiem stringa w .NET).
>
> Monte-Carlo? Prawopodobnie jak już sie trzeba pchać w wątpliwe rozwiązania
> to lepiej to zrobić jakimś sprawdzonym patternem:
>
> http://en.wikipedia.org/wiki/Tagged_union
>
> Czyli "przekazywać dodatkowe info który variant jest obowiązujący".
>
> A najlepiej to przemyśleć całość od nowa. ;-).
>
> --
> Pozdrawiam,
> Łukasz 'Maly' Ostrowski. http://l3v.pl/
> ICQ: 148498663 GG: 2544385 AIM: malyzgora
> GTalk: l...@g...com ASTRA: L3viathan
-
33. Data: 2010-02-18 10:09:23
Temat: Re: [C++] Sprawdzenie nulla dla struktury
Od: "GrzybSon" <m...@k...pl>
--
Pozdro,
Maćko
Użytkownik "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>
napisał w wiadomości news:hlj00r$4tn$1@solani.org...
> On 2010-02-18, GrzybSon <m...@k...pl> wrote:
>>> W C# w którym "piszesz" umiesz porównac value-type z nullem? Dobry
>>> jeste?.
>>
>> Dziekuje.
>> Rozja?nij o co Ci dok3adnie chodzi bo takie porównanie w C# nie ma
>> najmniejszego sensu?
>
> Brawo misiu! Właśnie zrozumiałeś analogię!
Dziękuję za klekotanie łapkami Stachu :)
>
> --
> Secunia non olet.
> Stanislaw Klekot
-
34. Data: 2010-02-18 11:54:28
Temat: Re: [C++] Sprawdzenie nulla dla struktury
Od: Łukasz 'Maly' Ostrowski <m...@U...pl>
On Thu, 18 Feb 2010 11:07:38 +0100, GrzybSon wrote:
> Nie pogrążam tylko nie zakumałeś o czym mowa:
Zakumałem, CLR znam inside-out. Ty nie ;-).
> struct TopStruct
> {
> int i;
> string komunikat;
> NestedStruct nested;
> }
>
> struct NestedStruct
> {
> InnerStruct inner;
> }
>
> jeżeli teraz wykonam taki kod
>
> TopStruct str = new TopStruct();
> to komunikat będzie nullem
Zgoda, bo to reference type.
> tak samo jak nested
Bzdura. Będzie zainicjowane i referencowalne.
Value-type'y nie mają prawa przyjąć
(referencyjnej) wartości null.
Gdyby Inner/Nested było class'em - to tak, były
by odpowiednie pola wynullowane.
> i będzie miało wartość 0
zgoda, bo to value type, i default(int) == 0.
--
Pozdrawiam,
Łukasz 'Maly' Ostrowski. http://l3v.pl/
ICQ: 148498663 GG: 2544385 AIM: malyzgora
GTalk: l...@g...com ASTRA: L3viathan
-
35. Data: 2010-02-18 12:34:46
Temat: Re: [C++] Sprawdzenie nulla dla struktury
Od: "GrzybSon" <m...@k...pl>
Użytkownik "Łukasz 'Maly' Ostrowski" <m...@U...pl> napisał w wiadomości
news:lm1unv87vss4$.bn3vltgimyt0.dlg@40tude.net...
> On Thu, 18 Feb 2010 11:07:38 +0100, GrzybSon wrote:
>> Nie pogrążam tylko nie zakumałeś o czym mowa:
>
> Zakumałem, CLR znam inside-out. Ty nie ;-).
>
>> struct TopStruct
>> {
>> int i;
>> string komunikat;
>> NestedStruct nested;
>> }
>>
>> struct NestedStruct
>> {
>> InnerStruct inner;
>> }
>>
>> jeżeli teraz wykonam taki kod
>>
>> TopStruct str = new TopStruct();
>> to komunikat będzie nullem
> Zgoda, bo to reference type.
>
>> tak samo jak nested
> Bzdura. Będzie zainicjowane i referencowalne.
> Value-type'y nie mają prawa przyjąć
> (referencyjnej) wartości null.
Tu masz rację, co ciekawe inaczej inicjowane są structy pod zarządzalnym C++
i C#.
Pod zarządzalnym zachowują się tak jak napisałem czyli zagnieżdżone
struktury są nullami domyślnie.
>
> Gdyby Inner/Nested było class'em - to tak, były
> by odpowiednie pola wynullowane.
>
>> i będzie miało wartość 0
> zgoda, bo to value type, i default(int) == 0.
>
> --
> Pozdrawiam,
> Łukasz 'Maly' Ostrowski. http://l3v.pl/
> ICQ: 148498663 GG: 2544385 AIM: malyzgora
> GTalk: l...@g...com ASTRA: L3viathan
-
36. Data: 2010-02-18 12:43:45
Temat: Re: [C++] Sprawdzenie nulla dla struktury
Od: Łukasz 'Maly' Ostrowski <m...@U...pl>
On Thu, 18 Feb 2010 13:34:46 +0100, GrzybSon wrote:
> Tu masz rację, co ciekawe inaczej inicjowane są structy pod zarządzalnym C++
> i C#.
> Pod zarządzalnym zachowują się tak jak napisałem czyli zagnieżdżone
> struktury są nullami domyślnie.
Tutaj pewnie znowu Kolegi znajomość C++/CLI jest średnia i
coś pominąłeś, sprawdze jak będe w domu. Szczerze wątpie.
CLR jest ten sam.
--
Pozdrawiam,
Łukasz 'Maly' Ostrowski. http://l3v.pl/
ICQ: 148498663 GG: 2544385 AIM: malyzgora
GTalk: l...@g...com ASTRA: L3viathan
-
37. Data: 2010-02-18 12:55:45
Temat: Re: [C++] Sprawdzenie nulla dla struktury
Od: "GrzybSon" <m...@k...pl>
Użytkownik "Łukasz 'Maly' Ostrowski" <m...@U...pl> napisał w wiadomości
news:dfilclbpknfk.rjc5l06b2cjp.dlg@40tude.net...
> On Thu, 18 Feb 2010 13:34:46 +0100, GrzybSon wrote:
>> Tu masz rację, co ciekawe inaczej inicjowane są structy pod zarządzalnym
>> C++
>> i C#.
>> Pod zarządzalnym zachowują się tak jak napisałem czyli zagnieżdżone
>> struktury są nullami domyślnie.
>
> Tutaj pewnie znowu Kolegi znajomość C++/CLI jest średnia i
> coś pominąłeś, sprawdze jak będe w domu. Szczerze wątpie.
> CLR jest ten sam.
A proszę Cię bardzo, mam cały czas otwarte VS 2005.
>
> --
> Pozdrawiam,
> Łukasz 'Maly' Ostrowski. http://l3v.pl/
> ICQ: 148498663 GG: 2544385 AIM: malyzgora
> GTalk: l...@g...com ASTRA: L3viathan
-
38. Data: 2010-02-18 13:15:07
Temat: Re: [C++] Sprawdzenie nulla dla struktury
Od: Łukasz 'Maly' Ostrowski <m...@U...pl>
On Thu, 18 Feb 2010 13:55:45 +0100, GrzybSon wrote:
> A proszę Cię bardzo, mam cały czas otwarte VS 2005.
Czysty projekt C++/CLI, VS2008.
using namespace System;
ref struct InnerStruct
{
int innerI;
};
ref struct TopStruct
{
int i;
InnerStruct innerStruct;
};
int main(array<System::String ^> ^args)
{
TopStruct top;
return 0;
}
Zgodnie z oczekiwaniem, top jest non-null,
top.innerStruct jest non-null,
i i innerI są na 0.
QED. :P.
--
Pozdrawiam,
Łukasz 'Maly' Ostrowski. http://l3v.pl/
ICQ: 148498663 GG: 2544385 AIM: malyzgora
GTalk: l...@g...com ASTRA: L3viathan