Új hozzászólás Aktív témák
-
expfgv
újonc
válasz s1999xx #5924 üzenetére
Köszi a reagálást, ha már itt válaszoltál, leírom ide a konkrét problémát (bocsi a szemetelést a többiektől!).
Amit írtál, be van kapcsolva nálam, projectet is létrehoztam természetesen!
A feladat:Feladat: Állapítsuk meg, hogy az egyes változó típusok mekkora méretűek bájtban. (bájt==Byte)
Ezt a sizeof(x) egy operandusú operátorral tehetjük meg, mely az argumentumában szereplő objektum, ebben az esetben a változó méretét adja vissza bájtban. Így könnyen ellenőrizhetjük, hogy egy adott típus hány bájtos, azaz hány bájtot foglal le a memóriában,
Például.:
char típus : 1 (bájt), előjeles EGÉSZ alapból; -128...127;
unsigned char: 1 (bájt), előjel nélküli EGÉSZ, char típusú
számábrázolás; 0...255 értékekkel;
int típus : 4 (bájt) !!a 32 bites környezetben!!,
előjeles EGÉSZ alapból. Az int típus méretét feltétlenül ellenőrizni kell, mert a mérete operációs rendszer függő!FONTOS: A BREAKPOINT-ot az 'int main()' sorba tegye, léptesse a programot soronként és az eredményeket a WATCHES ablakban figyelje, LOCAL VARIABLES alatt! Ez az ablak 'debug' esetén automatikusan megnyílik.
Maga a kód (megjegyzésekkel):
#include <stdio.h> // header file-ok
#include <stdlib.h>
// Deklarációs rész (később)
// int aglobalis, bglobalis; // Globális változók helye, minden
// függvényből láthatók, későbbiekben
// (lehetőleg) ne használjuk. (Ezen
// változók akkor globálisak, ha egy
// modulból áll a program.)
int main() // BREAKPOINT ITT !!!
{
char ch; // lokális változók deklarálása
// kezdeti értékadás nélkül!
int a, b, c, d, e, f, g;// lokális változók csak a függvényen
// belül láthatók, most main()-on belül.
// FIGYELEM; alapból a számábrázolás előjeles (+/-)
a = sizeof(ch); // 'ch' nevű, 'char' típusú (1 bájtos) változó
// 'ch' változó méretét átadja az ’a’
// változónak (így a értéke 1 lesz).
b = sizeof(char); // közvetlenül a típus nevét is bele írhatjuk
c = sizeof(unsigned char); // a sizeof() operátor argumentumába
d = sizeof(int); // előjeles EGÉSZ számábrázolás
e = sizeof(unsigned int); // előjel nélküli EGÉSZ számábrázolás
f = sizeof(float); // ez a kompatibilitás miatt van már
g = sizeof(double); // újabb fordítók ezt tekintik alaptípusnak
// a 'float' és a 'double' típusok, valós számtípusok, azaz
// előjeles egész vagy tizedes pontos tört értékek is lehetnek
return 0;
}Namost én ezt bemásolom, majd a jelölt helyre rakok egy breakpointot. Nyomok egy F8-at, majd nyomnám az F7-et, de semmi értelme. Egyrészt a Watches ablak teljesen üres, másrészt nem lép a sorok között.
kovisoft: bocsi, teljesen fogalmatlan vagyok ilyen téren, ma láttam életem első C kódját. Leírtam ebben a hozzászólásban, hogy hogy csináltam.
[ Szerkesztve ]
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!