Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
mar
Založen: 16. 06. 2012 Příspěvky: 608
|
Zaslal: 4. srpen 2013, 09:07:14 Předmět: |
|
|
Weny Sky napsal: |
100x opakovana lez bude porad lzi. C neni a nikdy nebylo podmnozinou C++ a muzete si tvrdit co chcete.
Naprosto jednoduchy semanticky priklad:
sizeof('x') vysledkem je v C zpravidla 4 (velikost datoveho typu int)
sizeof('x') vysledkem v C++ je ovsem 1 (velikost datoveho typu char)
Kdyz k tomu sedne blbec, ktery si mysli, ze je C podmnozinou C++ a bude podle toho v C psat, tak se pak bude sakra divit. No a clovek, ktery zase C zna, tak nebude tvrdit, ze je to podmnozina C++.
Zkuste si priznat, ze nemate pravdu, protoze ji opravdu nemate. Argumenty, ze nejste chodici znalci standardu, ze 99 % znamena podmnozina, ze si za tim proste stojite, bych cekal spis na Novinky.cz nebo Blesk.cz, ale ne na tady |
ROFL. Ano přesně takový google/wikipedia argument jsem čekal
Já jsem toho v C napsal opravdu celkem dost, než jsem přešel na C++, takže ti můžu rovnou říct, že sizeof na character literal použije opravdu jenom blbec... |
|
Návrat nahoru |
|
|
Weny Sky
Založen: 28. 07. 2007 Příspěvky: 241
|
Zaslal: 4. srpen 2013, 09:46:13 Předmět: |
|
|
Argumenty ad hominem .... ale mel jsem to poznat driv, ze diskutuju s ignoranty. Moje chyba. Omlouvam se, ze jsem prispel k zasvineni tohoto threadu. Klidne moje prispevky smazte |
|
Návrat nahoru |
|
|
quas4
Založen: 18. 10. 2007 Příspěvky: 199
|
Zaslal: 4. srpen 2013, 09:55:09 Předmět: |
|
|
Weny Sky napsal: |
100x opakovana lez bude porad lzi. C neni a nikdy nebylo podmnozinou C++ a muzete si tvrdit co chcete.
Naprosto jednoduchy semanticky priklad:
sizeof('x') vysledkem je v C zpravidla 4 (velikost datoveho typu int)
sizeof('x') vysledkem v C++ je ovsem 1 (velikost datoveho typu char)
Kdyz k tomu sedne blbec, ktery si mysli, ze je C podmnozinou C++ a bude podle toho v C psat, tak se pak bude sakra divit. No a clovek, ktery zase C zna, tak nebude tvrdit, ze je to podmnozina C++.
Zkuste si priznat, ze nemate pravdu, protoze ji opravdu nemate. Argumenty, ze nejste chodici znalci standardu, ze 99 % znamena podmnozina, ze si za tim proste stojite, bych cekal spis na Novinky.cz nebo Blesk.cz, ale ne na tady |
Priznavam ze nejsem chodici encyklopedie standardu C ani C++, ale nac tolik invektiv? Co se tyka tveho argumentu (jedineho?) kolem sizeof tak hodnoty ktere vraci nejsou ve standardu presne definovany a zalezi na implementaci kompilatoru. Sam bych sizeof na character literal nepouzil. |
|
Návrat nahoru |
|
|
mar
Založen: 16. 06. 2012 Příspěvky: 608
|
Zaslal: 4. srpen 2013, 09:58:05 Předmět: |
|
|
Ad hominem? Tak to si pozorně přečti svůj přechozí příspěvek A na závěr jsi ještě nazval ty, kteří s tebou nesouhlasí, ignoranty. |
|
Návrat nahoru |
|
|
Tringi
Založen: 28. 07. 2007 Příspěvky: 290
|
|
Návrat nahoru |
|
|
Vilem Otte
Založen: 18. 09. 2007 Příspěvky: 462 Bydliště: Znojmo - Sedlesovice, Kravi Hora
|
Zaslal: 4. srpen 2013, 13:07:32 Předmět: |
|
|
#Weny Sky
Argumentovat pomocí "sizeof" může fakt jen Javista... tak za prvé sizeof nemá nijak pevně definovány délky proměnných.
Nejdebilnější důkaz jaký mohu vymyslet za 5 sekund (a pokud máš 64-bit systém a kompilátor, sám se můžeš přesvědčit, nebudu popisovat složitější, protože bys asi musel instalovat jiný, např. Losethos operační systém):
kód: |
size_t sizeOfPointer = sizeof(char*);
|
zkompiluj si ho v C nebo C++ (je to jedno) s flagem pro 32-bit systém vs 64-bit systém (pro gcc/g++ je to m32 a m64 flag).
Uvažme g++, dle tvého argumentu zde máme nově 2 různé jazyky - jeden pro 32 bitové systémy a jeden pro 64 bitové systémy. Wow, člověče, nevěř všemu na wikipedii.
Sizeof je platform/os defined (jsou OS kde třeba int má 8 byte, long 16 byte, etc. - máme nové jazyky zas? tyo to už jsme jak Babylóňané v pověsti dle tvého argumentu), a jazyk na něj nemá vliv, tedy your argument is invalid a uveď silnější argument.
Ostatně já bych C++ klidně jako pseudo nad-množinu C počítal, zvláště když je zde k dispozici "extern "C"", kdy se např. symboly exportují C-like. Ostatně také je můžeme počítat za pseudo nad-množinu assembleru "__asm__" je také k dospozici.
Ale proč chci hlavně reagovat:
#Lemik
Nepotřebuješ includovat knihovny přes hlavičky (a to ani v jiných jazycích). Stačí ti dlopen/dlsym/dlclose (resp. pro jiný OS/jazyk jiný ekvivalent), a nepotřebuješ wrappery ani hlavičky. (EDIT NOTE - nepočítám managované striktně OOP srač**, ty wrappery obvykle potřebují)
Hlavičky to usnadní, to jo - nicméně někdy je skutečně dlsym lepším řešením (plugin architektury, knihovny s extensions (třeba závislé na hardware), apod.). _________________ Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. |
|
Návrat nahoru |
|
|
Tringi
Založen: 28. 07. 2007 Příspěvky: 290
|
Zaslal: 4. srpen 2013, 13:43:47 Předmět: |
|
|
Wenyho argument je stále valid. To ty mícháš dohromady specifikaci jazyka a implementací definované vlastnosti.
Zatímco C definuje typ znakového literálu jako int, C++ jako char. Jiné jazyky, jiné definice.
Velikost pointeru nebo datových typů je v obou jazycích definovaná implementací (implementation defined), v C++ navíc omezená zdola.
Apropo: U odpovědi Lemikovi také mícháš dohromady dvě, až tak úplně, nesouvisející věci, a to statické a dynamické linkování. _________________ WWW | GitHub | TW |
|
Návrat nahoru |
|
|
Lemik
Založen: 30. 07. 2007 Příspěvky: 138
|
Zaslal: 4. srpen 2013, 14:26:10 Předmět: |
|
|
mar napsal: |
Lemik napsal: |
Ikdyž do C++ kompilátoru dáš C kód, vyleze Ti C++ objekt. |
Vyleze ti úplně stejný formát, jenom symboly budou pojmenované jinak. |
Jenže to Ti standard nezaručuje...
mar napsal: |
Cos citoval, se týkalo C99 a to je podle mě už slovíčkaření. I přes to je překryv Cxy a C++zw víc než 99%, což mně stačí. |
To že píšeš, že se to týká C99 mi vyznívá, jako by to byla jen jedna z verzí C, a já stejně používám tu starší, tak co... On právě píše, že to co jsi citoval, se týká těch verzí starších. Napadlo někoho, že možná to co považujete za C kód se za ty desítky let už prostě asimilovalo a je C++ kódem?
EDIT:
Když už tu nějaké ty příklady rozdílů C/C++
máme, tak taky jeden přihodím
kód: |
#include <stdio.h>
struct f { };
int main() {
f();
}
int f() {
return printf("hello");
} |
|
|
Návrat nahoru |
|
|
perry
Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 4. srpen 2013, 15:15:56 Předmět: |
|
|
Tak původní C++ jako nad-množina C imho brát jde. První kompilátory stejně dělaly to, že C++ kód "předělaly" na C a pak C kompilátorem zkompilovaly.
Objekty lze psát i v C (i ASM)... ale ne že bych to dělal, pouze mi někdo říkal, že to zkoušel a větší "voser" nezažil. _________________ Perry.cz |
|
Návrat nahoru |
|
|
mar
Založen: 16. 06. 2012 Příspěvky: 608
|
Zaslal: 4. srpen 2013, 15:43:00 Předmět: |
|
|
Lemik napsal: |
To že píšeš, že se to týká C99 mi vyznívá, jako by to byla jen jedna z verzí C, a já stejně používám tu starší, tak co... On právě píše, že to co jsi citoval, se týká těch verzí starších. Napadlo někoho, že možná to co považujete za C kód se za ty desítky let už prostě asimilovalo a je C++ kódem?
|
No vždyť to je verze C, má x vylepšení, x přidaných věcí do std. knihoven, možná x deprecated věcí.
To je jako kdyby sis lehce vytunil auto a tvrdil sousedovi, že máš úplně nové.
Že se standard vyvíjí snad nikoho nepřekvapuje. Totéž bych mohl tvrdit o C++98 a C++11 (nebo si vyber cokoliv jiného - jakýkoliv standard, který se vyvíjí).
Nemyslím, že by se cokoliv kamkoliv asimilovalo, pokud jsem tvoji myšlenku pochopil. Nebo máš na mysli K&R styl? |
|
Návrat nahoru |
|
|
frca
Založen: 28. 07. 2007 Příspěvky: 1558
|
Zaslal: 4. srpen 2013, 15:58:36 Předmět: |
|
|
Horka jsou extrémní evidentně v celé republice. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
|
|