Folosirea lui #error si #pragma
-------- ----- ------ -------
ANSI C contine si directivele de preprocesare #error si #pragma.
------------
Exemplu:
------------
#if A_SIZE < B_SIZE
#error "tipuri incompatibile"
#endif
Daca in timpul compilarii va apare o eroare prezenta intr-o directiva #error, atunci se va afisa mesajul respectiv.
Directiva #pragma se foloseste pentru folosire specifica implementarii. Ea are forma generala:
#pragma atomi_lexicali
Aceasta cauzeaza o comportare ce depinde de fiecare compilator C in parte.
-------- ----- ------ -------
Numerele liniilor unui program
-------- ----- ------ -------
O directiva de preprocesare de forma
#line constanta_integrala "nume_fisier"
va determina compilatorul sa renumeroteze liniile textului sursa astfel incat urmatoarea linie sa aiba valoarea specificata si numele
fisierului sursa curent este "nume_fisier". Daca nu se precizeaza "nume_fisier", atunci se va face doar numerotarea liniilor. Bineinteles, numerele asociate liniilor sunt ascunse pentru programator si apar numai la mesaje de eroare sau avertismente.
-------- ----- ------ ----- ----- ----
Exercitii propuse spre implementare
-------- ----- ------ -------------
1. Scrieti propria voastra functie "quicksort()" care sa fie echivalenta cu "qsort()" pus la dispozitie de sistemul C.
2. Definiti o macro-definitie pentru XOR(), numita "sau exclusiv". Un apel XOR(a,b)=true <=> a este true si b false, sau a false si b true. Scrieti si o macro-definitie XOR(a,b,c) si una XOR(a,b,c,d).
3. Scrieti un program C in care sa afisati valorile celor 5 macrouri predefinite.
|