Intrebari C++

Intrebari despre programarea cu VC++ incluzand mediul de dezvoltare, instalare, setari, debugger, compilator, linker si documentatie.
Post Reply
User avatar
Ranzler
Junior
Junior
Posts: 10
Joined: 06 Dec 2012, 19:15
Judet: Cluj
Location: Cluj-Napoca
Contact:

Intrebari C++

Post by Ranzler » 27 May 2013, 14:45

Va salut domnilor am cateva intrebari legat de c++ ! mentionez ca sunt incepator !

am cautat dar nu prea am inteles ce este _STDC_ stiu ca este un macro predefinit dar nu stiu ce face la ce ajuta fix
bun asta ar fi prima intrebare urmatoarele pe parcurs :yes:
Va multumesc anticipat !


Cu respect , Ranzler

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3776
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: Intrebari C++

Post by Ovidiu Cucu » 27 May 2013, 17:13

Diverse compilatoare accepta extensii de limbaj care se abat de la standard.
__STDC__ indica faptul ca se cere cod 100% compatibil cu standardul ANSI C.
Orice abatere genereaza o eroare de compilare.
La MSVC, __STDC__ este definit daca s-a setat optiunea de compilare /Za (Disable Language Extensions).

Vezi si Nota: este valabil pentru C, nu si pentru C++.

User avatar
Ranzler
Junior
Junior
Posts: 10
Joined: 06 Dec 2012, 19:15
Judet: Cluj
Location: Cluj-Napoca
Contact:

Re: Intrebari C++

Post by Ranzler » 28 May 2013, 11:14

Multumesc Ovidiu revin cu alte intrebari
Cu respect , Ranzler

User avatar
Ranzler
Junior
Junior
Posts: 10
Joined: 06 Dec 2012, 19:15
Judet: Cluj
Location: Cluj-Napoca
Contact:

Re: Intrebari C++

Post by Ranzler » 28 May 2013, 12:34

Ce face /inseamna maro-ul predefinit _cplusplus ? Am inteles ca testeaza header-ul compilat .
Cu respect , Ranzler

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3776
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: Intrebari C++

Post by Ovidiu Cucu » 28 May 2013, 13:21

Unde ai vazut tu scris ca "testeaza header-ul compilat"?

[off-topic]
OK. O sa incercam aici sa lamurim ce-i cu macro-urile predefinite __STDC__ si __cplusplus.
Insa, pe viitor te rog sa incerci sa pui fiecare intrebare in topicul ei caruia sa-i dai un titlu sugestiv. "Intrebari C++" e un titlu mult prea general.
Si te rog nu mai manca din underscore-uri. Este vorba de __STDC__ vs. _STDC_, de __cplusplus vs. _cplusplus.

User avatar
Ranzler
Junior
Junior
Posts: 10
Joined: 06 Dec 2012, 19:15
Judet: Cluj
Location: Cluj-Napoca
Contact:

Re: Intrebari C++

Post by Ranzler » 28 May 2013, 14:19

[quote="Ovidiu Cucu"]Unde ai vazut tu scris ca "testeaza header-ul compilat"?

ok dar mie asa imi scrie in cartea de programare de la facultate .

imi cer scuze .
Cu respect , Ranzler

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3776
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: Intrebari C++

Post by Ovidiu Cucu » 28 May 2013, 14:58

Testeaza headerul compilat pentru ce? Ce-i ala "header compilat"?
__cplusplus este un macro care este (pre)definit daca se foloseste un compilator C++. Daca se foloseste un compilator C, nu.
Chiar aveti asa ceva in manualul de la facultate? Nu-mi vine sa cred... :D

User avatar
Ranzler
Junior
Junior
Posts: 10
Joined: 06 Dec 2012, 19:15
Judet: Cluj
Location: Cluj-Napoca
Contact:

Re: Intrebari C++

Post by Ranzler » 28 May 2013, 15:16

da omule asa scrie in manual nu ai cum sa inveti asa ....
Cu respect , Ranzler

User avatar
Marius Bancila
Fondator
Fondator
Posts: 2343
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: Intrebari C++

Post by Marius Bancila » 28 May 2013, 22:34

N-am auzit de header compilat. Am auzit de header pre-compilat.

Treaba in C++ sta asa (putin mai babeste): atunci cand compilezi un program se petrec mai multe faze. Prima dintre ele se numeste pre-procesare si consta din rezolvarea tuturor directivelor si macrourilor. Fiecare fisier sursa, adica cele cu extensia cpp, sunt evaluate, toate directivele #include sunt procesate si continutul efectiv al headerelor inclus in fisierul cpp, pana la ultimul nivel. Se inlocuiesc macrourile, etc. Ce rezulta este un asa numit "translation unit" (sau unitate de translatare). Compilarea are loc pe unitati de translatare, si pentru fiecare astfel de unitate rezulta un fisier obiect. Aceste fisiere obiect sunt legate impreuna de linker si rezulta un modul executabil (exe, dll, etc.).
Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3776
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: Intrebari C++

Post by Ovidiu Cucu » 28 May 2013, 22:48

Marius, ce spui tu este una dintre fazele compilarii insa nu se numeste pre-compilare ci pre-procesare (a nu se genera confuzii cu precompiled headers).

User avatar
Marius Bancila
Fondator
Fondator
Posts: 2343
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: Intrebari C++

Post by Marius Bancila » 28 May 2013, 23:45

Da, da, am fost neatent acolo. Desigur ca e pre-procesare de vreme ce evalueaza directivele pre-procesor.
Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

Post Reply