IAR AVR no pot donar suport a la dimensió multi matriu?

M

maziar

Guest
IAR tenen problema amb dues dimensió sèrie?//////////// Inici de codi

#
Include <iom16.h>

unsigned char VRAM [2] [5];

void main (void)
(
unsigned char * p;
p = VRAM;
PORTD * = p;

)

//////////// Fi del codi

han de generar:

Error [Pe513]: un valor de tipus "unsigned char (*) [5]" no es pot assignar a una entitat de tipus
"unsigned char *"

Errors: 1
Advertències: capPer què?Iar no pot donar suport multidimention conjunt veritat?

Què cal fer?

 
Do oferty firmy Palit trafiły dwie karty graficzne z serii GeForce GTX 750 oraz GeForce GTX 750 Ti, z pasywnym systemem chłodzenia pasywnie. Karty należą do serii o nazwie KalmX i są wyposażone w 28-nanometrowy układ graficzny GM107 z serii Maxwell oraz 2 GB pamięci GDDR5 ze 128-bitową magistralą. Pierwsza z nich ma 512 procesorów strumieniowych i ...

Read more...
 
maziar,

VRAM és una dimensió de dues matriu,
per la qual cosa seria un error (l'estrictament ANSI) per assignar per complet a un punter en forma de tals.

p = VRAM;
no assignar a p la direcció de l'element a [row0] [col0] com de les seves intencions.

Vostè ha d'escriure per exemple:

p = VRAM [0];.Això assigna a p la direcció del primer element (fila 0) en col laboració 0.

Sol donar per sobre de qualsevol error.

 
maziar va escriure:

IAR tenen problema amb dues dimensió sèrie?//////////// Inici de codi# Include <iom16.h>unsigned char VRAM [2] [5];void main (void)

(

unsigned char * p;

p = VRAM;

PORTD * = p;)//////////// Fi del codihan de generar:Error [Pe513]: un valor de tipus "unsigned char (*) [5]" no es pot assignar a una entitat de tipus

"unsigned char *"Errors: 1

Advertències: cap
Per què?
Iar no pot donar suport multidimention conjunt veritat?Què cal fer?
 
p = i prova de VRAM;

a ke **, VC , BC Builder IAR tots bé, però ...<img src="http://www.edaboard.com/images/smiles/icon_redface.gif" alt="Avergonyit" border="0" />
 
No és gens inusual la situació en què alguns compilador és una mica més "permissiva"
i després els altres.Tanmateix, no vol dir que el resultat és correcte, fins i tot vostè no rebrà un error de compilació.Sovint, un control de la genera codi objecte revela la majoria de les trampes.

Si us plau llegiu "Brian W. Kernighan
i Dennis M. Ritchie" 2a edició, capítol 5.7 Multidimensional vectors.

Quant a l'assignació d'un punter a punter estic dubtly funcionarà.El principal problema aquí és quan es necessita passar de VRAM [fila] [col] (un punter a una funció o com a paràmetre), ha d'especificar [col] excepte la dimensió primera dimensió [fila] que és gratuït.

 
Això és el que PC-Lint tracta de dir-li a vostè:

PC-pelussa per C / C (NT) Versió.8.00n, Gimpel Copyright de Programari 1985-2003
--- Mòdul: E: \ WINDOWS \ Escritorio \ test.c

--- Mòdul: E: \ WINDOWS \ Escritorio \ test.c
_
p = VRAM;
E: \ WINDOWS \ Escritorio \ test.c 6 Error 64: No coincideixen els tipus (cessió) (unsigned char = unsigned char * (*) [5])

I aquí està el que significa un error, 64:

64 No coincideixen els tipus (de context) (TypeDiff)
- Hi ha hagut un desfasament en els tipus a través d'una
cessió (cessió o implícitament, vegeu Context).TypeDiff especifica el tipus de diferència.
Veure les opcions-EPN,-eps, epu-,-EPP (Secció 5.2 Error inhibició Opcions) per suprimir aquest missatge
quan l'assignació d'alguns tipus d'indicadors.

divertir

 
Hola,

Pruebe la línia:
p = (unsigned char *) VRAM;

Crec que això compilar.Cel.

 

Welcome to EDABoard.com

Sponsor

Back
Top