Afișarea șirurilor near și far

Pe scurt, pointerii near si far reprezinta adresele variabilelor in interiorul zonei de memorie alocate programului. Programele care ruleaza in cadrul sistemelor mai vechi, cum ar fi MS-DOS, folosesc pointerii far pentru a mari zona de memorie in care programul poate sa pastreze informatia.

Atunci cand programul foloseste pointerii far pentru referirea variabilelor de tip sir, poate aparea situatia in care doriti sa afisati continutul sirului folosind functia printf. Insa, asa cum veti invata in capitolul “Functiile”, compilatorul va genera o eroare daca transmiteti un pointer far unei functii care asteapta o adresa near. Daca doriti sa afisati unui sir far (al carui inceput este indicat de un pointer far) folosind functia printf, trebuie sa anuntati functia ca folositi un pointer far. Pentru a face aceasta, plasati o majuscula F (pentru far) imediat dupa % in specificatorul de format, cum se arata in continuare:

 

printf(„%Fs\n”, un_sir_far);

 

Pentru ca specificatorul %Fs arata functiei printf ca utilizati un pointer far, apelarea functiei este corecta. In mod similar, puteti plasa o majuscula N in specificatorul de format pentru a indica functiei printf ca-i transferati un sir near. Dar cum functia printf asteapta in mod prestabilit siruri near, specificatorii de format %Ns si %s dau acelasi rezultat.

 

#include <stdio.h>

#include <stdlib.h>

 

int main()

{

printf(„Hello world!\n”);

char *near_titlu = „Totul despre C”;

char *far_titlu =”Totul despre noi”;

printf(„Titlul este: %Ns\n”, near_titlu);

printf(„Titlul este: %Fs\n”, far_titlu);

return 0;

}

 

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *