TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: micronet3 en 05 de Enero de 2018, 12:08:04

Título: valores por defecto de un buffer declarado
Publicado por: micronet3 en 05 de Enero de 2018, 12:08:04
saludos

una consulta he declarado una variable en ccs

int buffer[45];

me gustaria saber si los valores de cada elemento del buffer inicialmente valen cero o todo es aleatorio

gracias

atte
Micronet
Título: Re:valores por defecto de un buffer declarado
Publicado por: KILLERJC en 05 de Enero de 2018, 12:17:31
Eso es una variable no incializada, por lo cual el compilador no tiene ningun deber de ponerlo a 0 y por lo tanto su valor es indeterminado.

Podrias pensar que gracias a que esta en la RAM y al ocurrir un POR ( encendido del PIC ) la RAM pierde sus valores y comienza con 0x00, pero si hay alguna especie de reset donde la RAM no se borra, estarias asumiendo algo erroneo.

En fin, es tu deber asumir que esa variable al comienzo posee cualquier cosa.
Podrias usar un memset() para ponerlo a 0 a ese buffer, o sino me equivoco CCS provee una directiva de preprocesamiento que obliga al compilador poner a 0 todas las variables.

Copio y pego del manual de CCS:

Citar
#ZERO_RAM
Purpose: This directive zero's out all of the internal registers that may be used to hold variables before program execution begins.
Título: Re:valores por defecto de un buffer declarado
Publicado por: micronet3 en 05 de Enero de 2018, 20:34:13
gracias KILLERJC ((:-)) ((:-)) ((:-)) ((:-))