Do you have a question? Post it now! No Registration Necessary
Subject
- Posted on
warning 2066 avec MCC18
- 01-02-2010
January 2, 2010, 11:01 pm

Bonsoir à tous,
En utilisant MCC18, avec les extraits de code suivant:
rom char* text="essai";
ram char var[40];
strncpypgm2ram(var,text,5);
j'obtiens le warning suivant
D:\DvptPic\px01\px01.c:396:Warning [2066] type qualifier mismatch in
assignment
bien que le programme fonctionne, ce n'est qu'un warning, j'aimerai bien
trouver la syntaxe correct pour éviter ce warning.
Si vous avez une idée ...
Bonne année à tous.
A+
En utilisant MCC18, avec les extraits de code suivant:
rom char* text="essai";
ram char var[40];
strncpypgm2ram(var,text,5);
j'obtiens le warning suivant
D:\DvptPic\px01\px01.c:396:Warning [2066] type qualifier mismatch in
assignment
bien que le programme fonctionne, ce n'est qu'un warning, j'aimerai bien
trouver la syntaxe correct pour éviter ce warning.
Si vous avez une idée ...
Bonne année à tous.
A+

Re: warning 2066 avec MCC18
Bruno a écrit :

Bonjour et merci pour vos réponses.
La ligne qu déclenche le warning est celle de l'instruction strncpypgm2ram.
Le prototype de cette fonction est décrite dans le fichier
c:\mcc18\h\string.h, c'est à dire:
char *strncpypgm2ram (auto char *s1, auto const MEM_MODEL rom char *s2,
auto sizeram_t n);
/** @name strncpyram2pgm
* The {\bf strncpyram2pgm} function performs a {\bf strncpy} where
{\bf s1}
* points to program memory and {\bf s2} point to data memory.
* @param s1 pointer to destination in program memory
* @param s2 pointer to source in data memory
* @param n maximum number of characters to copy
*/
Le code exact qui génere le warning est, (je n'utilise pas de variable var).
void initEcran(void)
{
int i;
for(i=0;i<80;i++)
bufEcran[i]=0x20;
strncpypgm2ram((ram char *)bufEcran,(rom char*)messVer,(size_t)19);
}
avec ou sans les cast, cela donne ce warning.
je cherche encore, mais ne trouve pas.
En attendant de vous lire, encore bonne journée à tous.
Bruno

Bonjour et merci pour vos réponses.
La ligne qu déclenche le warning est celle de l'instruction strncpypgm2ram.
Le prototype de cette fonction est décrite dans le fichier
c:\mcc18\h\string.h, c'est à dire:
char *strncpypgm2ram (auto char *s1, auto const MEM_MODEL rom char *s2,
auto sizeram_t n);
/** @name strncpyram2pgm
* The {\bf strncpyram2pgm} function performs a {\bf strncpy} where
{\bf s1}
* points to program memory and {\bf s2} point to data memory.
* @param s1 pointer to destination in program memory
* @param s2 pointer to source in data memory
* @param n maximum number of characters to copy
*/
Le code exact qui génere le warning est, (je n'utilise pas de variable var).
void initEcran(void)
{
int i;
for(i=0;i<80;i++)
bufEcran[i]=0x20;
strncpypgm2ram((ram char *)bufEcran,(rom char*)messVer,(size_t)19);
}
avec ou sans les cast, cela donne ce warning.
je cherche encore, mais ne trouve pas.
En attendant de vous lire, encore bonne journée à tous.
Bruno

Re: warning 2066 avec MCC18

Bonjour,
As-tu essayE9% de remplacer :
rom char* text3D%"essai";
par
const rom char* text3D%"essai";
?
J'ignore comment MicroChip a implE9%mentE9%
son compilateur C, mais en C ANSI, il
est prE9%fE9%rable de typer un pointeur sur une
littE9%rale par un "const" ( qui le sera de toute faE7%on).
--
-Stan
-Stan
--
-Stan
-Stan

Re: warning 2066 avec MCC18
Stan a écrit :

oui, j'ai aussi essayé cela, merci pour vos réponses et pour l'attention
que vous avez bien voulu porter à ce problème, comme le warning
n'empêche pas le programme de tourner, je vais continuer sans, lorsque
je serai assez avancé, pour ceux qui le veule, je vous enverrai le
source complet ...
Merci encore et bonne soirée à tous.

oui, j'ai aussi essayé cela, merci pour vos réponses et pour l'attention
que vous avez bien voulu porter à ce problème, comme le warning
n'empêche pas le programme de tourner, je vais continuer sans, lorsque
je serai assez avancé, pour ceux qui le veule, je vous enverrai le
source complet ...
Merci encore et bonne soirée à tous.
Site Timeline
- » Recherche cable prog couzet mill2
- — Next thread in » Electronics (French)
-
- » (80) rech driver rs 485
- — Previous thread in » Electronics (French)
-
- » Richter ou Merkel ?
- — Newest thread in » Electronics (French)
-
- » [OT] Neostrada
- — The site's Newest Thread. Posted in » Electronics (Polish)
-
- » Richter ou Merkel ?
- — The site's Last Updated Thread. Posted in » Electronics (French)
-