Я начинаю с программирования c, и я думаю, что я не уверен в использовании переменных unsigned . Я знаю, что uint8_t представляет собой неподписанный 8-битный целочисленный тип, а это означает, что он не может быть отрицательным, поэтому все 8 бит, выделенные для положительных чисел, представляют собой число от 0 до 255. Но я не знаю, почему, если Я пишу это:Почему печать массива uint8_t показывает разные значения?
int main() {
uint8_t value [4];
printf("\nvalue:\t%" PRIu8 "", value[0]);
printf("\nvalue:\t%" PRIu8 "", value[1]);
printf("\nvalue:\t%" PRIu8 "", value[2]);
printf("\nvalue:\t%" PRIu8 "", value[3]);
printf("\n");
}
я получить разные результаты каждый раз, когда я сделал: ./test:
[email protected]:~/Desktop$ ./test
value: 48
value: 99
value: 13
value: 193
[email protected]:~/Desktop$ ./test
value: 176
value: 76
value: 71
value: 0
[email protected]:~/Desktop$ ./test
value: 64
value: 13
value: 5
value: 175
Почему я получаю различные числа в значении [х]?
Возможный дубликат (HTTP : //stackoverflow.com/questions/17216663/how-does-an-uninitialized-variable-get-a-random-value) – Gerhardh
'static uint8_t ...' :) Но это уже другая история (правильные ответы летят вокруг). – 0andriy
Выдающийся ответ, но вы не сказали, какие значения вы ожидаете напечатать. –