Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
C++

[ROZWIĄZANE] Kilka rzeczy / pytań których nie rozumiem w c++

C++

  • Zamknięty Temat jest zamknięty
14 odpowiedzi w tym temacie

#1 Kaleka

    Wszechwidzący

  • Użytkownik

Reputacja: 108
Zaawansowany

  • Postów:237
  • GG:
  • Imię:Eryk
  • Lokalizacja:Łódź
Offline

Napisano 22.11.2011 13:21

Witajcie.
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 ;P
  • +
  • -
  • 1

reklama.png

pluginyCOD.pl  Perki i klasy oraz dodatki do codmoda!

 


#2 Hiroshima

    Godlike

  • Przyjaciel

Reputacja: 1 327
Godlike

  • Postów:4 984
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Málaga
Offline

Napisano 22.11.2011 13:32

Automatyczna wiadomość


Ten temat został przeniesiony z forum:
InneProgramowanieProblemy
do
InneProgramowaniePytania


  • +
  • -
  • 1

#3 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 22.11.2011 13:41

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.
  • +
  • -
  • 2

#4 Kaleka

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 108
Zaawansowany

  • Postów:237
  • GG:
  • Imię:Eryk
  • Lokalizacja:Łódź
Offline

Napisano 22.11.2011 14:05

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 ?
  • +
  • -
  • 1

reklama.png

pluginyCOD.pl  Perki i klasy oraz dodatki do codmoda!

 


#5 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 22.11.2011 14:08

Prawdopodobnie kompilator wziąłby to za int, ale lepiej napisać:

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

Użytkownik Fili:P edytował ten post 22.11.2011 14:09

  • +
  • -
  • 2

#6 -PainKiller-

    Wszechobecny

  • Zbanowany

Reputacja: 66
Pomocny

  • Postów:498
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Kraków
Offline

Napisano 22.11.2011 15:58

1. chyba wyrwana z kontekstu, tego się raczej nie deklaruje - to z czegoś wynika.

#7 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 22.11.2011 17:13

nie ucz się w kontekście pluginów pawn a c++ to różnica i nie wszystko jest takie same
  • +
  • -
  • 0

#8 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 22.11.2011 17:32

ehh unsigned to poprostu typ bez znaku wiec czy dasz const int xxx=5 czy const unsigned short int xxx=5 to zachowa sie to tak samo

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
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#9 ExBiT

    Pomocny

  • Użytkownik

Reputacja: 39
Życzliwy

  • Postów:65
  • Imię:Brainf*ck
  • Lokalizacja:Warszawa
Offline

Napisano 22.11.2011 22:15

A tam. Nie zawracaj sobie głowy jakimiś niepotrzebnymi zmiennymi. Od razu ciśnij na stringach/tabach ^^ A tak na poważnie, to wystarczy pogooglać.

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'.

Użytkownik ExBiT edytował ten post 22.11.2011 22:19

  • +
  • -
  • 0
Projekty na zamówienie w technologii:
- C++,
- Java,
- Pawn.

100% zadowolenia. Kontakt - PW.

#10 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 22.11.2011 22:25

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
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#11 ExBiT

    Pomocny

  • Użytkownik

Reputacja: 39
Życzliwy

  • Postów:65
  • Imię:Brainf*ck
  • Lokalizacja:Warszawa
Offline

Napisano 22.11.2011 22:31

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ę.

Użytkownik ExBiT edytował ten post 22.11.2011 22:35

  • +
  • -
  • 0
Projekty na zamówienie w technologii:
- C++,
- Java,
- Pawn.

100% zadowolenia. Kontakt - PW.

#12 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 22.11.2011 23:16

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
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#13 Kaleka

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 108
Zaawansowany

  • Postów:237
  • GG:
  • Imię:Eryk
  • Lokalizacja:Łódź
Offline

Napisano 23.11.2011 11:15

Ok, dzięki za wszystkie odpowiedzi, dam jutro + ponieważ dzisiaj już wyczerpałem limit :lol:
Do zamknięcia ; D
  • +
  • -
  • 0

reklama.png

pluginyCOD.pl  Perki i klasy oraz dodatki do codmoda!

 


#14 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 23.11.2011 16:23

wielkość dla danych zależy od wersji kompilatora i komputera (16 bit / 32 bit / 64 bit )
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
  • +
  • -
  • 0

#15 Onyke

    Godlike

  • Przyjaciel

Reputacja: 708
Guru

  • Postów:2 178
Offline

Napisano 24.11.2011 12:12

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 1





Również z jednym lub większą ilością słów kluczowych: C++

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych