Что не так с scanf и int8_t в си
Изучая указатели наткнулся с такой проблемой при попытке присвоить в переменные(2-е переменные p и g) с типом int8_t с консоли в первой переменной p всегда ноль, предполагаю что дело в чтение из потока но это мои догадки, что не так?
#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>
void fun(int8_t *i, int8_t *j){
*i *= *j;
}
int main(int argc, char** argv){
int8_t p = 0;
int8_t g = 0;
scanf("%" SCNu8,&p);
scanf("%" SCNu8,&g);
printf("p = %d, g = %d\n", p, g);
fun(&p, &g);
printf("%d ", p);
return 0;
}
в консоли:
C:\Users\user\Desktop>gcc main.c
C:\Users\user\Desktop>a
4
5
p = 0, g = 5
0
C:\Users\user\Desktop>