Strona 2 z 2

[C++] program zamieniający tekst na pisany wielkimi literami

: 11 sie 2011, o 21:08
autor: Quaerens
C czy C++? No rzeczywiście jak ktoś dobrze napisał co kto lubi z tym. Chodź jakbym miał wypisywać różnicę to naprawdę wiele by mi to tutaj zajęło...

[C++] program zamieniający tekst na pisany wielkimi literami

: 11 sie 2011, o 23:41
autor: void_t
soku11:
Tłumaczę kodem autora? Przyjąłem, że autor nie chciał pobierać więcej niż ustaloną, statyczną ilość znaków.

Well, trudno zdefiniować zmienną w pętli w C bez trybu c99/std99 w gcc

Przykład aplikacji korzystających z wydajniejszych i nieprzenośnych wstawek z asma? Jasne: gmp, silniki 3d - SSE (chociaż tutaj akurat jest wybór pomiędzy inline assemby a wbudowanymi funkcjami udostepnianymi w headerze xmmintrin.h).

Iteratory? Przyznaję - napisałem to akurat niepotrzebnie.

Pytasz o kruczki składniowe? Proszę uprzejmie: ... -languages

[C++] program zamieniający tekst na pisany wielkimi literami

: 12 sie 2011, o 21:22
autor: abc666
Taaa
You have to manually allocate and deallocate memory.
Hahaha

Zresztą nie wiem czy czytałeś co tam jest pod tym linkiem bo w najwyżej ocenionej odpowiedzi ma w sobie masę prawdy. C++ używasz do innych rzeczy. Są pewne problemy, które lepiej rozwiązać w C, niektóre w C++, niektóre w javie. Są też takie, które najlepiej zrobić w LABview (:D).
A co do kruczków. Jeśli język jest tak rozbudowany składniowo to nie da się ich uniknąć. Ale np. zaliczanie do kruczków sięgnięcia poza tablicę? No bez przesady.

[C++] program zamieniający tekst na pisany wielkimi literami

: 12 sie 2011, o 22:11
autor: adambak
void_t pisze:Mam na myśli, że C jest bardziej użyteczny, prostszy
ojjj nie.. C++ jest bardziej użyteczny, prostszy, ogromnym plusem jest STL i w zawodach programistycznych nie ma sobie równych..

a co do tematu - czy nie jest śmieszne pisać o wydajności algorytmu, kiedy mamy do czynienia z takim problemem?

[C++] program zamieniający tekst na pisany wielkimi literami

: 13 sie 2011, o 20:21
autor: soku11
void_t pisze:soku11:
Well, trudno zdefiniować zmienną w pętli w C bez trybu c99/std99 w gcc
Well, trudno załączać biblioteki C++ w C. Korzystasz z iostreams itd, więc kod jest w C++. Nie wiem co ma to tego standard C99.
void_t pisze:soku11:
Przykład aplikacji korzystających z wydajniejszych i nieprzenośnych wstawek z asma? Jasne: gmp, silniki 3d - SSE (chociaż tutaj akurat jest wybór pomiędzy inline assemby a wbudowanymi funkcjami udostepnianymi w headerze xmmintrin.h).
To zupełnie inna bajka. Zresztą nawet w shaderach odeszło się już w zupełności od asma kart graficznych na rzecz języków w stylu HLSL. I tak naprawdę to wątpię, żeby w popularnych silnikach używano wstawek. Chyba że w jakichś raytracerach (które tak czy siak są przeważnie wolne). Ogólnie dużo większym problemem w dziedzinie silników 3D są czasy dostępu do pamięci (cache miss etc). Pisze się mimo wszystko w C++ bardziej strukturalnie, żeby zminimalizować narzut vtable i innych wirtualnych tworów. Wniosek z tego taki, że jednak to C++ coś w sobie ma...



Co do linka:
W C++ używa się wektorów i innych tworów z STL. Tablice C-style jak sama nazwa wskazuje wynikają z kompatybilności z językiem C (jak dla mnie niepotrzebnie). Język C++ jest blisko asma więc niektóre rzeczy muszą być typu UB. Jak komuś nie pasuje takie coś to się przesiada na języki z kodem pośrednim czyli np. Javę czy C#. Mnie najbardziej denerwuje w C++ (i C zarazem) całe zamieszanie z nagłówkami. Ileż to trzeba się namęczyć by nadodawać pragma once, forward declaration i cykliczne dołączanie plików. Brak mi również czegoś na miarę JUnit oraz sensownego raportowania błędów w przypadku szablonów.
Mimo wszystko nie ma tam ani słowa o weloznacznościach i kruczkach składniowych poza i++ ++i itd. Ogólnie to z tego co widzę to twoje podejście dobrze opisuje ten obrazek:

[C++] program zamieniający tekst na pisany wielkimi literami

: 13 sie 2011, o 22:48
autor: Afish
void_t pisze:

Kod: Zaznacz cały

const char d = 'A' - 'a';
Przecież to i tak zawsze wynosi 0x20.
Nie zawsze. To zależy od kodowania znaków stosowanego przez kompilator. Nie tylko ASCII człowiek żyje.