[ aleksazr @ 23.07.2010. 20:03 ] @
comm label:type:size

je, naravno, MASM sintaksa.
Kako to isto dobiti u C jeziku?

Za one koji neznaju, sa COMM se definisu varijable
na jednom mestu, recimo neki global include fajl.

Na taj nacin varijabla je poznata asembleru,
ali nece biti uvrstena u program ako zaista nije i koriscena.

I takva varijabla ne moze imati pocetnu vrednost,
iskljucivo ide u BSS.
[ Mihajlo Cvetanović @ 23.07.2010. 23:18 ] @
Nije sasvim jasno šta u stvari želiš. Da li poznaješ MASM vrlo dobro, a C učiš, pa te interesuje analogija nečeg što poznaješ iz MASM? Da li ti je potrebna funkcionalnost u C koju si u MASM ostvarivao na dati način? Da li u istom projektu kombinuješ MASM i C, pa moraš da imaš istovetan oblik promenljivih da bi mogao da spojiš funkcionalnosti iz dva jezika?
[ aleksazr @ 24.07.2010. 00:25 ] @
Odgovor na prva dva pitanja - DA. Na trece - NE.
Dakle, poznajem MASM i treba mi ista funkcionalnost u C.

AFAIK, u C jeziku je potrebno staviti definiciju varijable u include fajl:
extern int var;

i samu varijablu u neki C fajl:
int var;

E, to isto u MASM moze da se dobije samo sa *jednim* COMM.
(samo sto je pocetna vrednost varijable uvek nula)
Taj COMM ide u globalni include, i da li ce varijabla zaista i biti
uvrstena u finalni exe zavisi od toga da li se iko poziva na nju.

Znaci, zelim u globalnom include fajlu da definisem varijablu,
pa ako je neko koristi, bice je u final exe, ako ne- nece.
[ Mihajlo Cvetanović @ 24.07.2010. 08:09 ] @
Nema to što hoćeš. U C-u se manje brine o zauzetom prostoru nego u asembleru, i podrazumeva se da ako deklarišeš promenljivu onda ćeš i da je koristiš. Mogao bi eventualno s jednim makroom (#define) da ogradiš tu promenljivu i onda na nivou projekta da kontrolišeš da li promenljiva postoji ili ne postoji, ali to je stvarno bespotrebno i glupo. U C-u prosto treba da razmišljaš drugačije, ako to treba promenljiva onda je definiši, a ako ti ne treba onda nemoj da je definišeš.