[ Mikky @ 06.12.2001. 14:36 ] @
sta znaci i cemu sluzi #pragma direktiva
[ leka @ 08.12.2001. 04:13 ] @
#pragma direktive naredjuju procesoru (najcesce) sta od delova aplikacije koju pises da kesira (pomaze kad aplikaciju kompajlirati vise puta)
[ rivan @ 03.01.2002. 21:34 ] @
Citat:
leka:
#pragma direktive naredjuju procesoru (najcesce) sta od delova aplikacije koju pises da kesira (pomaze kad aplikaciju kompajlirati vise puta)


auuu
pa nije to bas tako...
(nije "#pragma once" jedina takva direktiva a mnoge nemaju nikakve veze sa kesiranjem, da ne pricam da mnoge nemaju veze ni sa MSVC ni sa Win i tome slicno)
za detalje vidi help nekog kompajlera jer se pragme u principu puno razlikuju
[ Ivan Dimkovic @ 07.01.2002. 16:00 ] @
Citat:
leka:
#pragma direktive naredjuju procesoru (najcesce) sta od delova aplikacije koju pises da kesira (pomaze kad aplikaciju kompajlirati vise puta)


Lose... lose...

#pragma direktiva je komanda kompajleru koja sluzi za podesavanje njegovih internih parametara. To sto si ti naveo je samo jedna od mnogih mogucnosti.

Obicno se pragme koriste za:

1. Iskjucivanje odredjenjih warning poruka
2. Ukljucivanje/Iskljucivanje optimizacije, i drugih parametara kompajlera
3. Ukljucivanje default biblioteka za linkovanje unutar fajla (MSVC)
4. Specificne mogucnosti operativnih sistema (segmenti, itd..)

Kao sto je receno, pragme su potpuno specificne za odredjeni kompajler, arhitekturu i operativni sistem.

Ubuduce molim ljude koji odgovaraju da prvo provere svoje znanje kako ne bi dolazilo do odgovora koji nisu potpuni ili, jos gore, netacni.

Reference su GNU C manuali, ili Microsoft VC++ help (u slucaju MSVC kompajlera). U svakom slucaju - uputstvo za vas kompajler.

[ Dragi Tata @ 08.01.2002. 18:18 ] @
Koji kompajler koristis?
[ Mikky @ 08.01.2002. 23:01 ] @
msvcpp 6.0 ali nemam helpove za njega (msdn)
ali sam na to naisao u jednom sorsu za watcom 11 kompajler
cinimi se da je pisalo ovako
#pragma aux
[ Dragi Tata @ 08.01.2002. 23:46 ] @
Za watcom ne mogu da ti pomognem, a za VC++ idi na MSDN-ov sajt; tamo ima dosta dobra dokumentacija za #pragma
[ Jovan Marjanovic @ 09.01.2002. 02:30 ] @
Citat:
Dragi Tata:
Za watcom ne mogu da ti pomognem, a za VC++ idi na MSDN-ov sajt; tamo ima dosta dobra dokumentacija za #pragma


zar nije #pragma direktiva koja je definisana u nekom standardu kao sto je ANSI ?

recimo da nema veze koji kompajler ili IDE se koristi, #pragma je #pragma ...
[ c00l_daem0n @ 09.01.2002. 11:18 ] @
slazem se da je #pragma standardna direktiva ali ono sta ide posle nje (opcije) zavisi od compilera.
a evo jedne od definicija: utice da procesor obavi operaciju koja zavisi od implementacije
[ SnOoP @ 09.01.2002. 15:48 ] @
slazem se sa ivanom

#pragma ti omogucava implementaciju specificnih direktiva znaci:

#pragma <ime direktiva>

a za direktive bi trebala da ima lista negde.. znam da ima
exit, inline, option, startup, warn...

ako kompajler ne moze da prepozna ime direktiva.. onda ce ignoristi #pragma stejtment..

[ Dragi Tata @ 09.01.2002. 16:04 ] @
Citat:
blue:
[

zar nije #pragma direktiva koja je definisana u nekom standardu kao sto je ANSI ?

recimo da nema veze koji kompajler ili IDE se koristi, #pragma je #pragma ...


Gresis, ovaj, gresis silno, sine!

Evo sta sam nasao o #pragmi u MSDN-u:

"Each implementation of C and C++ supports some features unique to its host machine or operating system. Some programs, for instance, need to exercise precise control over the memory areas where data is placed or to control the way certain functions receive parameters. The #pragma directives offer a way for each compiler to offer machine- and operating-system-specific features while retaining overall compatibility with the C and C++ languages. Pragmas are machine- or operating-system-specific by definition, and are usually different for every compiler."

[ Jovan Marjanovic @ 11.01.2002. 03:52 ] @
Citat:
Dragi Tata:

Gresis, ovaj, gresis silno, sine!

Evo sta sam nasao o #pragmi u MSDN-u:

"Each implementation of C and C++ supports some features unique to its host machine or operating system. Some programs, for instance, need to exercise precise control over the memory areas where data is placed or to control the way certain functions receive parameters. The #pragma directives offer a way for each compiler to offer machine- and operating-system-specific features while retaining overall compatibility with the C and C++ languages. Pragmas are machine- or operating-system-specific by definition, and are usually different for every compiler."





The #pragma directive
Syntax:


#pragma token-sequence

#pragma

The #pragma directive is vaguely defined in ISO C. Its purpose is to permit implementation specific C compiler directives or to add new preprocessor features. For instance, in some implementations it maybe possible to turn on or off certain compiler warning options using a warning pragma; for example:

#pragma warning +xxx
#pragma warning -yyy



Kao sto rekoh, #pragma direktiva je definisana u ISO standardu. Svaki kompajler ce je procitati, i implementirati, ili ignorisati.
Nikada nisam pominjao razlicite upotrebe pragme u razlicitim kompajlerima ...
Zanimljivo je kako ljudi trce da dokazu da nisi u pravu, ili da ti nesto natrlaju na nos ...
[ Dragi Tata @ 11.01.2002. 16:06 ] @
Ama, nije mi bila namera da ti trljam nos (nemam druga posla). Samo, kada sam ja pitao coveka koji kompajler koristi, ti si prokomentarisao da ne bi trebalo da ima veze koji se kompajler koristi, a to ne stoji, pa k'o velim da razjasnimo.

Sad smo, valjda, svi srecni i zadovoljni i znamo sta je #pragma
[ SnOoP @ 12.01.2002. 03:01 ] @
znaci mozemo sretno da zakljucimo da je i ova tema zavrsena :P