Tener este código:las variables volátiles como argumento para funcionar
typedef volatile int COUNT;
COUNT functionOne(COUNT *number);
int functionTwo(int *number);
no puedo deshacerme de algunas advertencias ..
consigo esta advertencia en 1 functionOne prototipo
[ Advertencia] type calificadores ignorados en función return type
y me da esta advertencia 2, donde quiera que llamo functionTwo con un puntero RECUENTO argumento en lugar de un puntero int
[advertencia] fundido descarta calificadores del tipo de destino puntero
, obviamente, las variables/los punteros no se pueden "convertir" a volátiles/no volátiles ... ¿pero cada argumento debe especificarse también como volátil? Entonces, ¿cómo puedo usar cualquier función de biblioteca si ya está definida para una variable no volátil?
EDITAR: Usando gcc -std=c99 -pedantic -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wextra -Wstrict-prototypes -Wmissing-prototypes …
EDITAR: Después de consejos Jukka Suomela este es un ejemplo de código de advertencia de dos
typedef volatile int COUNT;
static int functionTwo(int *number) {
return *number + 1;
}
int main(void) {
COUNT count= 10;
count = functionTwo(&count);
return 0;
}
Espero que esta sea una pregunta académica. Si está tratando de resolver un problema real, el enfoque que seleccionó podría llevarlo por un camino difícil. No puedo pensar en una buena razón por la que quieras pasar un elemento volátil a una función por valor. –
@Amardeep No puedo encontrar ninguna razón, pero si no lo hago así, me aparece una segunda advertencia diciéndome que debo especificar volátil en prototipo para las variables volátiles –