Zeph Le 06/05/2002 à 19:46 J'aimerais avoir une fonction qui prends comme arguments 2 chaines, qui retourne 0 ou 1, et qui s'utiliserait comme ça :
char *tabl[10]
...
teste(tabl[0],"Hello")
Donc ma fonction ressemble à ça :
int teste(char *chaine1,char *chaine2)
{
...
}
Mais à la compilation ça me donne des warnings :
Passing arg 2 of 'teste' discards qualifiers from pointer target type
Ça marche très bien, mais je voudrais quand même virer ces erreurs... Comment faut-il déclarer et utiliser ma fonction ? (quand même pas un (char*)"Hello" à chaque fois j'espere ???)

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
c'est pas une erreir, donc pas de pb.
tu cliques, dans les menus de TIGCC :
Option> Projet
dans la case en haut à droite de la fenêtre qui s'ouvre (là où il a les switch pour GCC, tels -Ox, -W -Wall et autres), tu supprime celui qui contient le terme "string" (je sais plus ce que c'est exactement)
c'est un switch que TIGCC inclut automatiquement, et qui sert à éviter certains usages de chaines de caractères...
perso, je le trouve à 500% inutile et plus que génant...
normalement, ça devrait marcher après
Zeph Le 06/05/2002 à 20:02 C bizzard qu'il faille changer des options dans TIGCC...
Y'a pas un moyen de ne pas avoir ces erreurs sans rien modifier ?

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
non, je penses pas... enfin, Kevin te répndra mieux que moi
c un switch rajouté par défaut depuis qeulques versions.
il est totalement inutiel dans TOUS les cas que j'ai recontré.
ne garde pas le pointeur de fenêtre dnas un registre pour les fonctions qui n'en n'ont pas besoin.
cela évite aux fonctions de sauvegarder, activer, et restaurer le pointeur de fenêtre.
cela libère aussi un registre supplémentaire pour pas mal de fonctions.
Remarquez cependant que vous ne devez pas utiliser cette fonction si vous utiliser des opérateurs sur les flottants : les routines du TIOS pour l'arithmétique en virgule flottante supposent que le pointeur de fenêtre est toujours présent.
en gros, rajouter ceci fait que le compilateur ne fera pas
link a6,#0
et unlk a6
quand ce ne sera pas nécessaire.
j'utilises ce switch dans KII.
regsrade si ça fait gagner en mémoire... en tout cas, c censé faire gagner en rapidité dans certains cas.
sinon, essaye aussi les passages par registres
Au lieu de supprimer le warning s'il te gène, corrige ta déclaration:
int teste(char *chaine1,const char *chaine2)
Tu peux probablement mettre même les 2 en const. (Changes-tu chaine1?)
PpHd Le 07/05/2002 à 09:42 Disons que la seconde chaine est une constante. Donc tu dois dire au compilo que tu ne peux pas la modifier.
Peut etre : int teste(const char *chaine1,const char *chaine2)
Le caractere const dans un argument de fonction signifie que la fonction ne va pas modifier ce parametre.
nhl Le 07/05/2002 à 14:02 dans un de mes prog, j'ai eu exactement les memes warning, pour exactement la meme raison: "transmission" de char entre fonctions
j'ai téléchargé la toute derniere version de tigcc: plus aucun warning
nhl Le 07/05/2002 à 18:40 j'ai fait mon prog sous un ancienne version de ti-gcc ide
ca me mettait plein de warnings
j'ai alors télécharger la derniere version
j'ai recompilé le mem projet: y'avais plus de warning....
la version que j'ai est la 0.94 beta 13
l'ancienne, je ne sais plus...
Zeph Le 07/05/2002 à 21:51 En effet, en mettant const ça supprime toutes les erreurs, je préfere ça que de virer un parametre de compilation...
PpHd #13 > Oui, les deux chaines ne sont pas modifiées dans la fonction (ça ne fait que des comparaisons), donc je peux mettre la 1ere en const également, mais quel est l'avantage ?

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Non le const n'apporte rien d'autre d'après ce que je sais.

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
Zeph Le 08/05/2002 à 01:03 Ok.
Un autre petit problème, mais c pas la peine de créer un topic pr ça :
hnd_box=DialogNewSimple(120,35);
DialogAddTitle(hnd_box,"GB Exporter",BT_OK,BT_NONE);
DialogAddRequest(hnd_box,2,15,"Nom carte : ",0,8,10);
int_key=DialogDo(hnd_box,CENTER,CENTER,chr_nam,NULL);
HeapFree(hnd_box);
Au premier lancement du programme, ça marche sans problème. Mais au 2eme le titre de la boite "GB Exporter" est remplacé par les n-1 derniers caractères de la la valeur entrée précedement (n=dimention de la chaine). Pkoi ???

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)