Newsgroup: it.comp.lang.c
Titolo: Sciocca domanda su "arvg"

Mi chiedevo in base a cosa dovrei scegliere se iniziare con:
int main (int argc, char **argv)
o 
int main (int argc, char *argv)
Grazie,
-- 
PoochieŠ

 int main (int argc, char *argv)
questo lo usi se la variabile char e' una variabile semplice 

 wrote:


Pardon l'ignoranza, ma cosa differenzia una variabile dall'essere
complessa al non esserla dato che stiamo sempre parlando degli argomenti
passati al programma? Può essere che nel primo caso abbiamo un array di
stringhe mentre nel secondo un array di char?
-- 
Poochie©

esempio di variabile semplice
char pippo;
esempio di variabile complessa
char pippo [30];
spero di essere stato chiaro... 

 spero di essere stato chiaro... 
Oky doky!
-- 
Poochie©


scusa ma questa roba mi pare una vera boiata :/
@Poochie
char **argv è un puntatore a puntatore a char mentre char 
*argv è un puntatore a char.
main vuole o (void) o (int argc, char **argv) o ugualmente 
(int argc, char *argv[]).
ciao.

 (int argc, char *argv[]).
ho notato! Era un po' che non rispolveravo il C ^_^
-- 
Poochie©


Ciao,
cosě, perň, non vorrei dare l'impressione di chi getta benzina sul fuoco ma 
lo stub di startup degli eseguibili mette a disposizione ancora un'altra 
cosa quindi non DEVE ma puň. I parametri passati al main possono essere 
collezionati tutti con la forma seguente:
int main(int argc, char *argv[], char *arge[])
dove arge (argument environment) č un array di puntatori alle stringhe di 
una _copia_ delle variabili d'ambiente (modificandole non si modificheranno 
quelle della shell/command ospite).
Beh, ormai l'ho scritta. Sono pronto per la lapidazione (le fionde non 
valgono).
Un saluto. 

prova

 quelle della shell/command ospite).
Riconosciuto dalla maggior parte dei compilatori ma non specificato 
dallo standard.
Buona Pasqua



Ciao Giovanni,
non è specificato dallo standard perché lo stub è modificabile e 
compilabile (.asm).

 compilabile (.asm).
Anche se non ho sottomano lo standard C99 dove ci sono alcune modifiche 
sulla dichiarazione di main() sono sicuro che non e` stato introdotto il 
terzo argomento.  Lo standard C90 alla sezione 5.1.2.2.1 descrive che 
main ha due argomenti.
Il terzo argomento e` piu` che altro un residuo dei vecchi sistemi UNIX 
elo standard ANSI definisce la funzione getenv() per accedere 
all'environment.  E che ci sia uno stub modificabile e` una scelta di 
chi ha realizzato il compilatore.  Per quanti compilatori abbia visto e` 
la prima volta che sento una soluzione di questo tipo.  A quale 
compilatore ti riferisci?  (.asm e` tipico dell'ambiente MSDOS/Windows)


 main ha due argomenti.
Confermo che anche nello std C99 non c'e' menzione di un terzo argomento.
Giorgio

  - I sistemi di sviluppo.
Spiegami,dimmi...semplicemente funziona. M$, Borland, Green Hills, dos, 
unix, xenix, linux...funziona. Non capisco il vostro accanimento 
nell'imporre lo standard anche nelle discussioni. Non è un NG dove si 
discute esclusivamente di "ISO/IEC 9899:1990". Giorni fa, dopo aver 
dato un suggerimento ad un frequentatore, mi sono visto rispondere da 
un terzo che io.h, fileno(), dup(), dup2() non andavano bene perché non 
standard. Ne sono convinto (?) ma ci sono ovunque e ovunque funzionano. 
In coda a questo post riporto un esempio di ciò che accade agli 
standard quando si implementano OS. Solitamente, gli standard si 
possono creare solamente imponendo delle limitazioni ed in questa sede 
stiamo parlando di uno dei più potenti lingaggi di programmazione. 
Limitiamoci pure nel suo utilizzo ma per tirare su due maschere, 
agganciare un DB e fare tre stampe è veramente sprecato. Perdonate lo 
sfogo.
Un saluto.
The compilers from IAR Systems adhere to a freestanding environment 
implementation of the ISO/IEC 9899:1990 Programming Languages C 
standard, changed by Amendment 1:1995, Technical corrigendum 1:1994, 
and Technical corrigendum 2:1996. We supply some of the functionality 
of the ISO/IEC 9899:1999 Programming Languages C as well. Two different 
implementations can be selected when adhering to the C standard:
Freestanding environment - without OS support
Hosted environment - with OS support.
IAR Systems has chosen to implement most of the hosted environment, but 
some of the functionality that needs OS support is implemented as stub 
functions.
 ISO/IEC Document names [1] IS 9899:1990 Programming Languages C 
(Revision and redesignation of ANSI X3.159-1989) [2] IS 
9899:1990/COR1:1994
Programming Languages C TECHNICAL CORRIGENDUM 1 [3] IS 
9899:1990/AM1:1995 Programming Languages C Amendment 1 [4] IS 
9899:1990/COR2:1996??
Programming Languages C TECHNICAL CORRIGENDUM 2 [5] IS 9899:1999 
Programming Languages C (Revision of ANSI/ISO/IEC 9899:1990)
Other standard organization names United States ANSI/ISO 9899:1990 
(R1997) -- C.
This standard is the same as [1] + [2] + [3] + [4].
FIPS (Federal Information Processing Standard) PUB 160.
This standard is the same as [1]. It was withdrawn February 2000.
Great Britain DIN EN 29899:1993.
This standard is the same as [1]. Popular terms K&R - The de facto 
standard for C prior to the standard work for ANSI X3.159-1989. C89 -
The original ANSI X3.159-1989 standard.
 This was the first standard for C. C90 - The original ISO/IEC 
9899:1990 standard, as [1]. C94 - [1] + [2].
C9X - The name by which the upcoming ISO/IEC C99 standard was known 
when the work was in progress. C99 - As [5]. C0X - The next revision of 
the ISO/IEC C standard.

 Un saluto.
Non e` che ci si voglia limitare solo agli standard,  Stai parlando a 
chi per anni ha sviluppato OS e sistemi per microcontrollori e per 
telefonia (tutto strettamente in C e assembler) ma se non si conoscono 
le condizioni di lavoro e` difficile, se non impossibile dare risposte.
Riferirsi agli standard puo` essere di grande aiuto a focalizzare un 
problema a cui non ci sarebbe risposta.
Inoltre scrivere codice aderente allo standard permette di avere 
portabilita` fra ambienti diversi.  E posso dire per esperienza 
personale che questo ti risparmia molto lavoro

Che e` IAR System?  E` un produttore di compilarori?
In ogni caso con cio` ribadisci il punto di vista che alcune soluzioni 
sono specifiche di chi realizza il compilatore e non e` corretto citarle 
nel NG per rispondere a dei quesiti.
Non prendertela.


 Giovanni
Un saluto anche a te e auguri.