Documente Academic
Documente Profesional
Documente Cultură
TIPURI DE CONSTANTE
CONSTANTE ÎNTREGI
CONSTANTE ÎNTREGI
Exemplu:
Constanta zecimală 31 poate fi scrisă ca 037 în octal şi Ox1f sau OXIF în
hexazecimal.
O constantă întreagă este generată pe un cuvânt.
O constantă zecimală a cărei valoare depăşeşte pe cel mai mare întreg cu semn
reprezentabil pe un cuvânt scurt pe 2 octeti, se consideră de tip long şi este
generată
pe 4 octeti.
O constantă octală sau hexazecimală care depăşeşte pe cel mai mare întreg fără
semn reprezentabil pe un cuvânt scurt, se consideră de asemenea de tip long.
O constantă întreagă devine negativă dacă i se aplică operatorul unar de negativare
'.'
CONSTANTE FLOTANTE
CONSTANTE CARACTER
CONSTANTE CARACTER
CONSTANTE SIMBOLICE
MODIFICATORUL CONST
Valoarea unei variabile declarate cu acest modificator nu poate fi modificată.
Sintaxa: const nume-variabilă = valoare;
nume-funcţie (..., const tip *nume-variabilă, ...)
în prima variantă, modificatorul atribuie o valoare iniţială unei variabile care nu
mai poate
fi ulterior modificată de program. De exemplu, const int virsta = 39;
Orice atribuire pentru variabila virsta va genera o eroare de compilare.
Atenţie! O variabilă declarată cu const poate fi indirect modificată prin intermediul
unui
pointer:
int *p = &virsta;
*p = 35;
în a doua variantă modificatorul const este folosit împreună cu un parametru
pointer într-o
listă de parametri ai unei funcții. Funcția nu poate modifica variabila pe care o
indică
pointerul:
int printf (const char *format, ...);
DIRECTIVA #DEFINE
DIRECTIVA #DEFINE
Exemple:
• Se definesc două constante pentru calcule logice, TRUE și FALSE
#define TRUE 1
#define FALSE ITRUE /* semnul ! este operatorul logic de negaţie (NOT) */
if(x==TRUE) instrucțiune;
• Se definesc două constante, șir și caracter
#define CUVANT "Nume" // constantă şir
#define LITERA'n' // constantă character
DIRECTIVA #DEFINE
Aplicație:
#include <stdio.h>
#define ACTIVITATEA "Laboratorul"
#define CURSUL 'C'
#define SEMESTRUL 1
void main(void) {
printf("\n Acum avem %s de %c, in semestrul %d\n", ACTIVITATEA, CURSUL,
SEMESTRUL);
}
DIRECTIVA #DEFINE
Note:
• Oriunde va fi apelat numele constantei, folosind specificatorul corespunzător, va
fi
substituit cu valoarea definită
• Numele constantelor globale definite cu #define, vor fi scrise cu majuscule,
pentru a fi
observate mai ușor
• După corpul directivei #define nu se va scrie ; punct şi virgulă
FUNCTII MACRO
O altă utilizare a directivei #define este aceea de a crea funcţii macro, și are
următoarea
sintaxa:
#define numeFunctie(numeArgumente) expresieAsociata
FUNCTII MACRO
Exemplu:
#define SEMNUL(a) (a)>=0 ? 1:-1
?: este operatorul ternar, echivalentul instructiunii if-else
#include <stdio.h>
int mainot
int rez, a;
printf("\n scrie un numar \n");
scanf("%d", &a);
iffa>=0) rez= 1;
else rez = -1;
printf("\n rez - %d\n", rez); }
FUNCTII MACRO
FUNCTII MACRO
Note:
• La fel ca directivele #define, nici funcțiile macro nu se încheie cu ; punct şi
virgulă, dar
dacă o functie are în interiorul ei mai multe instructiuni, atunci după fiecare se
pune ;
punct si virgulă, pentru a face diferenta intre instrucţiuni.
• Pentru a arăta care dintre argumentele prezentate au prioritatea ridicată, acestea
vor fi
incluse între paranteze.
• Pentru a nu genera erori, în anumite operatiuni matematice, anumite argumente
trebuie incluse între paranteze rotunde.
DEFINITII TYPEDEF
în limbajul de programare C un utilizator îsi poate crea proprile definiții de tip, prin
definirea unor tipuri de diferite complexitāti, combinând tipurile de date de bază,
folosind
sintaxa următoare:
typedef tip
C tipUser;
tip reprezintă un tip de dată de bază în C sau definit anterior cu un alt typedef.
tip User este tipul de dată sau denumire definite de către utilizator.
DEFINITII TYPEDEF
Exemplu:
typedef int INTREG; //INTREG este o altă denumire pentru tipul de date int
INTREG al, a2; //se declară doua variabile întregi
typedef float *PREALS; //definirea unui pointer printr-un tip real
PREALS p1=&x, p2=&y; //declararea a doi pointeri prin tipul real, initializati prin
adresele variabilelor x, respectiv y.
DEFINITII TYPEDEF
Notă:
Constructia operatorului typedef se încheie obligatoriu cu ; punct și virgulă.
• Toate denuminile tipUser trebuie să fie notate cu litere mari, pentru a fi mai usor
de identificat.
FUNCTII PROTOTIPATE
in C se impune ca:
• Variabilele să fie declarate/definite în prealabil.
• Funcţiilor să le fie cunoscut prototipul, care arată cum va functiona aceasta.
In cazul functiilor există 3 metode de creare a functiilor:
• Crearea funcților şi includerea în biblioteci, pentru uz modula şi general.
• Crearea unor prototipuri, atunci când este nevoie de o anumită functie cu rol
specific,
inexistentă în vreo bibliotecă, cu rol general în cadrul unui program.
• Creara unei functii locale, cu rol efemer, în cadrul unui program.
FUNCTII PROTOTIPATE
FUNCTII PROTOTIPATE
Exemple:
int lungime Sirſint, char");
I/declararea unei functii care preia un intreg si adresa unui char, si întoarce o
valoare de tip întreg
float maxdMatrice(float matrice[DIML][DICM]);
Il prototipul unei funcţii care preia o matrice de elemente reale
float maxMatricelint, int, float**);
// echivalenta celei de-a doua expresii