Domanda

sto continuando ad imparare il C e vorrei aderire a ciò che è lo standard attuale, ma trovare un buon riferimento per che sembra essere problema.

Da quello che ho trovato in rete (per lo più attraverso Google e Wikipedia) è che l'attuale standard oggi usato è C99, più formalmente la norma ISO / IEC 9899: 1999. Di serie

Quando sto scrivendo codice C, spesso aprire un browser e fare ricerche sul Web semplice per cose come scoprire i valori esatti di ritorno alla funzione stdio.h scanf. Per lo più voglio solo entrare in una buona pratica di aderire allo standard attuale, ma anche se cerco la stringa specifica "C99 printf" o qualcosa di simile, ci non sembra essere un unico luogo per trovare una specifica definitiva .

Così ho due domande:

1) Esiste un C99 spec centrale che è disponibile on-line, gestito da l'organizzazione responsabile per questo standard?

[modifica]: La prima domanda è già stato risposto qui: Dove posso trovare il C corrente o C ++ documenti standard? . Grazie a James McNellis per aver sollevato la questione.

2) Esiste un programma in grado di analizzare un file sorgente C per assicurarsi che aderisce alla specifica C99? So che ci sono programmi come questo per analizzare i file XHTML e sembra che non ci dovrebbe essere uno per C99 e ...

[modifica]: Vorrei anche ricordare che sto facendo di sviluppo C utilizzando gcc, in particolare la versione 3.4.4. Quando vado al sito principale gcc ( http://gcc.gnu.org/ ) Sono ancora in esecuzione in difficoltà a capire che supporta la versione del compilatore, che specifica C.

È stato utile?

Soluzione

  

L'attuale standard per la programmazione   Linguaggio C è ISO / IEC 9899: 1999,   pubblicato 1999/12/01

e

  

norme ISO e IEC Pubblicato può essere   acquistato da un corpo membro di ISO o   IEC.

Da vostre papille bestest nel mondo standard, ISO .

E 'anche interessante notare la bozza del prossimo standard C è disponibile in formato PDF .

Altri suggerimenti

A seconda di quale compilatore si usa si può chiedere per controllare per voi. Per esempio con gcc si sarebbe correre in questo modo: gcc -Wall -Wextra -pendantic -std = c99 -o programma program.c

Si sostituirebbe program.c e programma con il nome del programma, naturalmente.

-Wall e -Wextra forniscono più avvisi e vi dice se hai fatto qualcosa di strano. -pendantic fornisce più anche di questo.

è possibile utilizzare -ansi se davvero si vuole seguire il ansi spec personalmente non lo uso da quando sono pigro ma è più corretto.

Non è in realtà possibile analizzare un file di origine e definitivamente stabilire che è conforme allo standard C99. C è diverso da XHTML in questo senso, in quanto C è un linguaggio Turing-complete e XHTML non è.

E 'certamente possibile trovare molti i casi di non conformità, ma è impossibile trovarli tutti. Si consideri, per esempio, un programma che genera una stringa di formato printf on-the-fly - come si può stabilire in modo statico che la stringa di formato sarà conforme? E se dipende dall'ingresso rilasciata al programma? Si consideri inoltre un programma che si sposta verso destra interi firmato -. Se l'intero con segno in questione non è mai negativo, quindi il programma può essere conforme, ma se non, allora è probabilmente affidamento su risultati di implementazione definiti

Il progetto per può essere ottenuto qui gratis. È inoltre possibile acquistare quello ufficiale da ANSI negozio .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top