[ROZWIĄZANE] Kilka rzeczy / pytań których...
Kaleka
22.11.2011
Mam do was kilka pytań dotyczących C++, ponieważ podczas czytania książki "C++ dla każdego" nie zrozumiałem wszystkich rzeczy
1. Typy zmiennych:
int (16bit) przechowuje od -32 768 do 32 767
int (32bit) przechowuje od -2 147 483 648 do 2 147 483 647
Teraz pytanko jeżeli w pluginie jest int coś, to ma to 16bit czy 32bit? Jak zadeklarować że int wynosi np 32 a nie 16? Jak jest domyślnie, 16 czy 32 ; d?
2. Tworzenie aliasów za pomocą typedef
Przykład:
typedef unsinged short int USHORT
czy zadziała takie coś?
typedef long int int
Ponieważ jest już samo int, czy da radę żeby w pluginie w ten sposób podmieniało wszystkie int na long int?
Czy jest różnica pomiędzy
typedef long int int
a
typedef long int INT
Z tego co wyczytałem to c++ inaczej traktuje wielkość liter, czyli z dużym INT powinno zadziałać.
3. Stałe
Stałe nie mogą być zmienne podczas działania programu, natomiast gdyby to wyglądało tak:
#define przykladowa_stala = cos_co_sie_zmienia_podczas_dzialania_programu // ?
Czy jeżeli zamiast (przykład z książki):
const unsigned short int studendsPerClass = 15;
Dałbym
const studensPerClass = 15;
To zadziałałoby ?
Czy lepiej używać #define czy const? Podobno define jest przestarzałe i powinno się używać const, jednak w wielu pluginach widzę define.
No to na tyle ; D Dla niektórych moje pytania mogą się wydawać śmieszne
Hiroshima
22.11.2011
Automatyczna wiadomość
Ten temat został przeniesiony z forum:
Inne → Programowanie → Problemy
do
Inne → Programowanie → Pytania
Fili:P
22.11.2011
a jeśli chodzi o to:
const unsigned short int studendsPerClass = 15;
To napisz po prostu
const short int studendsPerClass = 15;
Zostawiłem short, ponieważ short int jest mniejszy i chyba autor książki celowo umieścił short int, a nie int.
Pozdrawiam.
Kaleka
22.11.2011
Co do 3, to lepiej używać const,
a jeśli chodzi o to:
const unsigned short int studendsPerClass = 15;
To napisz po prostu
const short int studendsPerClass = 15;
Zostawiłem short, ponieważ short int jest mniejszy i chyba autor książki celowo umieścił short int, a nie int.
Pozdrawiam.
Jeżeli dałbym
const studentsPerClass = 15;
Nie zadziałałoby ?
Fili:P
22.11.2011
const int studentsPerClass = 15;
Ale pamiętaj że:
- byte - 1 bajt – zakres od -128 do 127
- short - 2 bajty – zakres od -32 768 do 32 767
- int - 4 bajty – zakres od -2 147 483 648 do 2 147 483 647
- long - 8 bajtów – zakres od -2^63 do (2^63)-1 (posiadają przyrostek L, lub l)
Dałem to, ponieważ chodzi o short i int.
Edited by Fili:P, 22.11.2011 14:09.
-PainKiller- 22.11.2011
DarkGL
22.11.2011
G[o]Q
22.11.2011
co do typow danych to zawsze spotykalem sie z tym ze int byl 4 bajtowy (32-bitowy) to zalezy od kompilatora nie od nas
co do typedef chyba nie mozna tam stosowac jako ostatniego "argumentu" slowa kluczowego z jezyka ale pewny nie jestem
const vs define roznica jest taka ze define jest podczas pracy preprocesora zamieniane na jakies wyrazenie a w miejsce Const'a jest wstawiana wartosc zmiennej oraz jej adres przez co na consta mozna wskazywac wskaznikiem a define to bardziej jest uzywane do makrodefinicji sprawdzających czy dany plik zostal juz zalączony kiedy mamy wiele plikow w projekcie
ExBiT
22.11.2011
to zalezy od kompilatora nie od nas
Nie pierdziel chociaż takich bzdur. Kompilator może jeszcze za nas program napisze?
- short int ma 16 bitów,
- int/long int ma 32 bity
- long long int ma 64 bity
Zapewne o to chodziło autorowi książki.
Jeszcze coś do tematu. Możesz również używać "zapomnianych deklaracji". Chodzi mi tutaj o '__int8', __int16, etc. Działają one tak samo tak jak te wyżej wymienione, tyle że '__int8'=='char'.
Edited by ExBiT, 22.11.2011 22:19.
G[o]Q
22.11.2011
Nie pierdziel chociaż takich bzdur
z tego co mi wiadomo to jednak kompilator ustala rozmiar typow danych (a raczej tworcy konkretnie zalezy to od tego w jakiej technologii dziala kompilator (16bit/32bit) jesli nie znasz tematu to sie nie wypowiadaj a __int8 == char tylko dla tego ze mają ten sam rozmiar
ExBiT
22.11.2011
z tego co mi wiadomo to jednak kompilator ustala rozmiar typow danych
jesli nie znasz tematu to sie nie wypowiadaj
http://pl.wikipedia....28typ_danych%29
Chcesz mi powiedzieć, że każdy typ danych w incie poprzedzony byle jakim przedrostkiem zajmuje tyle samo bitów? Pokaż mi lepiej taką adnotację w internecie, bo na słowo Ci nie wierze.. Tak na marginesie, to zaczyna się robić lekki spam.
PS. Od kiedy short int ma taką samą wielkość jak unsigned long long int??
EDITED: Przeszukałem cały internet przez google i takiej informacji nie znalazłem. Być może jestem idiotą i wprowadzam siebie głębiej w błąd, albo Ty nie umiesz się przyznać do napisania bzdury.
EDITED2:
Ale pamiętaj że:
byte - 1 bajt – zakres od -128 do 127
short - 2 bajty – zakres od -32 768 do 32 767
int - 4 bajty – zakres od -2 147 483 648 do 2 147 483 647
long - 8 bajtów – zakres od -2^63 do (2^63)-1 (posiadają przyrostek L, lub l)
Więc myślę że lepiej użyć short int ( powyższy tekst zaczerpnięty z javastart.pl > Kurs java > Typy danych)
Dałem to, ponieważ chodzi o short i int.
Nawet kolega potwierdza, to co ja mówię.
Edited by ExBiT, 22.11.2011 22:35.
G[o]Q
22.11.2011
Chcesz mi powiedzieć, że każdy typ danych w incie poprzedzony byle jakim przedrostkiem zajmuje tyle samo bitów
gdzie ja takie cos napisalem ??
w linku ktory podales jest tabelka a nad nią zdanie o tresci
Zakresy liczb całkowitych możliwych do przedstawienia za pomocą danego typu (w przypadku GCC 3.3.5) przedstawia poniższa tabela:
GCC to kompilator jest wiec EOT
Kaleka
23.11.2011
Do zamknięcia ; D
DarkGL
23.11.2011
dla kompilatorów 32 bitowych int zajmuje 32 bity
jednak na kompilatorze 16 bitowym będzie on zajmował 16 bitów
możemy być jednak pewni że zawsze char będzie miał co najmniej 8 bitów , int co najmniej 16 a long co najmniej 32 bity
Onyke
24.11.2011
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL