Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [C]Sintassi C

  1. #1
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352

    [C]Sintassi C

    Salve, vorrei avere un chiarimento sulla sintassi del C. In particolare vorrei sapere cosa rappresenta:

    __attribute__((__cdecl__))

    Questa espressione la si trova nelle dichiarazioni di tipo di variabili e di funzioni negli header della libreira standard, però non ho capito che funzione ha __attribute__, dal punto di vista sinttattico, ad esempio nella dichiarazione di prototipo:

    codice:
     FILE* __attribute__((__cdecl__)) fopen (const char*, const char*);
    oppure in questa dichiarazione:

    codice:
     typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));

    qual è il significato sintattico dei vari termini?


    Come compilatore ho usato il gcc e il mingw.


    Altri identificatori che appaiono sono __extension__, per esempio:

    codice:
     __extension__ typedef int __intptr_t;


    Inolte nella dichiarazione:

    codice:
     typedef int (*__gconv_trans_init_fct) (void **, const char *);
    si sta definendo il tipo

    __gconv_trans_init_fct

    come il tipo di puntatore a funzione che prende come argomenti un void** e un char* e restituisce un int, giusto?


    Tra l'altro vorrei sapere se tale codice è codice standard, oppure si tratta di estensioni e parole chiavi devi vari compilatori; cioè se un espressione come:

    codice:
    typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
    è sintatticamente conforme alla specifica grammaticale del C, tenendo presente che si tratta di codice che è stato prerpocessato, quindi tutte le macro sono gia state espanse.


    Il tutto mi serve per un traduttore di codice C che deve quindi fare anche un po di parsing e quindi vorrei capire cosa fa parte della grammatica del C e cosa no, e se sapete dove posso trovare una specifica formale della grammatica del C adottata dal gcc.

    grazie e ciao.

    programma di parsing di codice C

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  2. #2

    Re: [C]Sintassi C

    Originariamente inviato da anx721
    Tra l'altro vorrei sapere se tale codice è codice standard, oppure si tratta di estensioni e parole chiavi devi vari compilatori; cioè se un espressione come:

    codice:
    typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
    http://gcc.gnu.org/onlinedocs/gcc-3....ion-Attributes

    è sintatticamente conforme alla specifica grammaticale del C, tenendo presente che si tratta di codice che è stato prerpocessato, quindi tutte le macro sono gia state espanse.
    No, non sono dichirazioni standard (ANSI C)

    Il tutto mi serve per un traduttore di codice C che deve quindi fare anche un po di parsing e quindi vorrei capire cosa fa parte della grammatica del C e cosa no, e se sapete dove posso trovare una specifica formale della grammatica del C adottata dal gcc.

    grazie e ciao.

    programma di parsing di codice C
    Qui trovi una grammatica ANSI C
    http://www.lysator.liu.se/c/ANSI-C-grammar-y.html

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.