OVH Cloud OVH Cloud

compile mais oblige à fermer la fenêtre

26 réponses
Avatar
Québec
Salut, ...:-(

Y a quelque chose de cassé quelque part?
Ce code amène un prompt de windows pour déboguer.

>casse.exe casse-toi

#include <stdio.h>
#include <stdlib.h>
int main (char *argv[]){
printf("%s\n", argv[1]);
return 0;
}

Jean

6 réponses

1 2 3
Avatar
Yves ROMAN

Emmanuel Delahaye wrote:
par contre si j'essaie la ligne de commande

gcc -Wall -pedantic -c casse.c -stdÉ9
casse.c:4: warning: first argument of `main' should be `int'
casse.c:4: warning: `main' takes only zero or two arguments
====== > >> Bon y en a marre pour l'instant


C'est bien de se faire aider par son compilateur, mais il n'est pas
obligé de le faire, et tu ne peux pas le blamer si il ne t'aide pas.
C'est quand même au programmeur d'apprendre les éléments du langage et
de les retenir.


Je suis pas vraiment d'accord, en tout cas sur ce point.
En 2004, même sur du code C, on peut s'attendre à ce que le
compilateur signale les erreurs de typage, même celles acceptées
par le langage (int <-> T*).

Vue la complexité des applications actuelles (on est plus
en 1975), je trouve que la vérification du typage est
à la charge du compilateur.



D'accord pour le contrôle de typage, pourvu qu'on fournisse un prototype au
compilateur.
Mais il s'agit ici du cas particulier de la fonction main(), a écrire par le
programmeur, dont on ne fournit pas de prototype aucompilateur, mais qui 'doit'
avoir une des syntaxes précisées par la norme.

Il s'agit donc plus d'un problème de 'main()' qu'un problème de typage.

Nota:
n'écrivez pas de main(), comme ça le compilateur ne se plaindra pas !
(ce sera l'éditeur de lien, indépendant du langage....)



Avatar
Marc Boyer
In article , Emmanuel Delahaye wrote:
Marc Boyer wrote on 29/07/04 :
Ensuite, être en charte ne dispense pas de rester courtoit
et respectueux.


... de la langue française ...


<citation
Extrait de
http://www.usenet-fr.net/fr-chartes/savoir-communiquer.html#orthographe



Les remontrances orthographiques, tu éviteras

Rituellement, une sorte de fléau envahit Usenet : un article
corrige une faute orthographique d'un autre article. [SNIP]

Nous faisons tous des erreurs. Reconnaissons-le. [SNIP]
Alors, soyez indulgents. Si vous désirez à tout prix corriger
certaines fautes, utilisez la messagerie (email), mais pas le
réseau Usenet.
</citation>

Marc
--
La contractualisation de la recherche, c'est me donner de l'argent pour
faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce
que je sais faire, je le fais sans moyens...


Avatar
Marc Boyer
Alexandre Bacquart wrote:
Marc Boyer wrote:
Tout cela est en charte.
Ensuite, être en charte ne dispense pas de rester courtoit
et respectueux.


C'était courtoit et sans aucun manque de respect ! Tout est suggéré (et
de surcroît approuvé par l'intéressé). Et puis on est pas ici non plus
pour se faire des courbettes.


J'ai dit que ce ne l'était pas ?

Marc Boyer
--
La contractualisation de la recherche, c'est me donner de l'argent pour
faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce
que je sais faire, je le fais sans moyens...


Avatar
Marc Boyer
Yves ROMAN wrote:
Vue la complexité des applications actuelles (on est plus
en 1975), je trouve que la vérification du typage est
à la charge du compilateur.



D'accord pour le contrôle de typage, pourvu qu'on fournisse un prototype au
compilateur.


Mais la norme fournit un certain nombre de prototypes
acceptables pour main il me semble, non ?

Mais il s'agit ici du cas particulier de la fonction main(), a écrire par le
programmeur, dont on ne fournit pas de prototype aucompilateur, mais qui 'doit'
avoir une des syntaxes précisées par la norme.

Il s'agit donc plus d'un problème de 'main()' qu'un problème de typage.


Il s'agit d'un problème de typage, rendu plus compliqué pour
le compilateur du fait qu'il n'existe pas de .h dans lequel serait
définit la signature de main.

Marc Boyer
--
La contractualisation de la recherche, c'est me donner de l'argent pour
faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce
que je sais faire, je le fais sans moyens...


Avatar
Antoine Leca
En , Emmanuel Delahaye va escriure:
Juger de la qualité d'un compilateur
n'est pas le thème de ce forum.


EUH ???

Comment lis-tu la charte pour arriver à une telle conclusion ?



Antoine

Avatar
Québec
Bonjour,

les chèvre m'ayant jeté....

--------------
public class Serial
{ static
{
System.loadLibrary("serial");
}

public static void main(String[] args)
{
Serial serie = new Serial();
String fromC = serie.numero("jOSFTdKOBBO");//Jean Pierre
System.out.println("in java:=>" + fromC + "<=);
}
public native String numero(String one);
}
--------------
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class Serial */

#ifndef _Included_Serial
#define _Included_Serial
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: Serial
* Method: numero
* Signature: (Ljava/lang/String;)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_Serial_numero
(JNIEnv *, jobject, jstring);

/*
* Class: Serial
* Method: myjclass
* Signature: (Ljava/lang/String;)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_Serial_myjclass
(JNIEnv *, jobject, jstring);

#ifdef __cplusplus
}
#endif
#endif


--------
#include "Serial.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stddef.h>
#define JNI_FALSE 0
#define JNI_TRUE 1

char alphabet[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ "
"abcdefghijklmnopqrstuvwxyz_-";
const int alphas = sizeof alphabet - 1;


JNIEXPORT jstring JNICALL Java_Serial_numero
(JNIEnv *env, jobject jobjc, jstring jstr){
jthrowable exc;
jboolean iscopy;
jstring ret;
jsize len;
int i, j;
const char *fmt;
char ligne[11];

fmt = (*env)->GetStringUTFChars(env, jstr, &iscopy);
len = (*env)->GetStringLength(env, jstr);

printf("The string '%s' received by C has %d characters.n", fmt, len );

for(i=0;i<11;i++){
for(j=0;j<alphas;j++){
if(alphabet[j] == fmt[i]){
printf("%2d- %c ",i, fmt[i]);
ligne[i] = alphabet[65-j];
printf("%cn", ligne[i]);
/*printf( "Completed set, checking for exceptions..n" );*/
exc = (*env)->ExceptionOccurred( env );
break;
}


}
}
ligne[11] = '';

printf("The string mixed by C is : %sn", ligne);


ret = (jstring)(*env)->NewStringUTF(env, ligne);
(*env)->ReleaseStringUTFChars(env, jstr, fmt);
if (exc)
{
printf( "Exception detected..n" );
(*env)->ExceptionDescribe( env );
(*env)->ExceptionClear(env);
}
return ret;
}

et ça marche.


Le débutant.

authorizez les pops ups et souriez ici

http://www.jeanpierredaviau.com

enfin.... peut -être...
1 2 3