argument de la fonction main
Dernière réponse : dans Programmation
Bonjour,quelqu'un peut m'expliquer ce bout du code:
void main(int argc, char* argv[]) //=======ici????????????????
{
if (argc < 5){ //=========et là??????????
printf("Usage: %s <dim> filename idxname 0/1 (create/search)\n",argv[0]);//getch();
exit(0);
}
strcpy(filename, argv[2]);
strcpy(idxname, argv[3]);
int option=atoi(argv[4]); // 0 for construct, 1 for load and query
ndim = atoi(argv[1]);
}
je vi=uet savoir l'utilisation des paramétres de la fonction main argc et argv..?
merci
Autres pages sur : argument fonction main
Lassé par la pub ? Créez un compte
Citation :
Batchy a écrit :dans son code on déclare un int en plein millieu du code, ça ne ressemble pas trop à du C ...
Bonjour, d'abord a ma seul connaissance, y'a que le C++ qui accepte de declarer une variable en plein milieu d'un programme pas le C.
Le C ne l'autorise que en debut de bloc:
/*debut programme*/
{ int temp;
/*suite bloc*/
}
/*fin programme*/
est le mieux que tu puisse faire en C mais ta variable est locale au bloc, sortie du bloc elle n'existe plus.
pour les arguments de la fonction main:
l'entier sert a compter le nombre d'argument de ton programme, c'est a dire que si tu lance dans un shell:
# mon_programme arg1 arg2
ben ton entier prendra la valeur 3 (+ 1 pour le nom du prog).
Le pointeur de tableau de caractere (tu peut aussi mettre un char**) permet de stocker les chaine de caractere des arguments.
Ici argv[0] = mon_programme, argv[1] == arg1, argv[2] = arg2.
Voili voilou, c'est pas plus dure.
Citation :
[d'abord a ma seul connaissance, y'a que le C++ qui accepte de declarer une variable en plein milieu d'un programme pas le C.Le C ne l'autorise que en debut de bloc.
A ta seul connaissance, alors.
Si, c'est autorisé, même en C. Alors après pour savoir quelle norme ou standard précisément, demander à Emmanuel
Faire un test avec VC++ ou GCC qui sont polyglotes n'est pas pertinent.
Par contre mon bon vieux CC sous AIX, accepte par défaut, mais n'accepte plus si je l'invoke en C89.
En 2006, il n'est donc pas interdit d'utiliser la norme de 1999.
Citation :
pourquoi, pas recommandé ?je fait pas mal de delphi ces temps ci et c'est une des choses qui me plait le moins (a part borland) dans ce language, c'est la prédéclaration des variables
J'aime bien que les variables soient définies en début de bloc (j'ai pas dit 'de fonction') afin que la portée soit limitée au minimum.
http://mapage.noos.fr/emdel/notes.htm#portee
Mais je n'aime pas la définition au milieu d'un bloc (C99 ou à-la-C++), car je n'arrive pas à en cerner la portée clairement.
Vous opposez le classique au moderne. (sans connotation de mieux ou de pire dans un sens ou dans l'autre). Donc, il n'y a pas de meilleure façon de faire.
En revanche, en C, il est tellement facile de coder SALE, qu'il vaut mieux se prévoir des garde-fou.
Alors darouine, quand tu liras un code avec une déclaration en plein milieu, tu ne t'en choqueras point, et quand tu auras à rédiger un bout de code, tu déclareras tes variables au début des blocs.
J'ai bon ?
En revanche, en C, il est tellement facile de coder SALE, qu'il vaut mieux se prévoir des garde-fou.
Alors darouine, quand tu liras un code avec une déclaration en plein milieu, tu ne t'en choqueras point, et quand tu auras à rédiger un bout de code, tu déclareras tes variables au début des blocs.
J'ai bon ?
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :