728x90
반응형
main.c
#include <stdio.h>
union converter {
float f_val;
short u_val[2];
};
void main(void) {
float test1 = 40.26;
char PID_val[50] = {0,};
union converter conv;
conv.f_val = test1;
printf("%x %x\r\n", conv.u_val[1], conv.u_val[0]);
sprintf(PID_val, "TEST %04X%04X", conv.u_val[1],conv.u_val[0]);
printf("\r\n%s\r\n", PID_val);
}
1. 처음에 위에 코드대로 돌리면 아래와 같은 오류가 뜬다. SDL 검사에 아니오를 선택하면 사라진다. 2. sprintf(PID_val, "TEST %04X%04X", conv.u_val[1],conv.u_val[0]); 여기서 %04X를 안하면 4자리수가 안되었을 때 0이 표시가 안되서 오류가 발생할수 있음 40.26이 16진수로 4221 a3d 인데... %04X를 안하면 4221a3d로 표시된다. |
결과화면
추가
sprintf_s 를 사용 하여 해결할수 있다.
#include <stdio.h>
void main(void)
{
char test[20] = {0,};
int val_test = 20;
sprintf_s(test,sizeof(test),"val_test=%d",val_test);
printf("%s\r\n",test);
}
결과 화면
728x90
반응형
'공부 > C언어' 카테고리의 다른 글
22. 구조체 배열 변수 선언 (0) | 2019.07.10 |
---|---|
21. *(int*) 응용 (0) | 2019.07.09 |
19. union 응용 (0) | 2019.07.08 |
18. typedef enum 응용 (0) | 2019.05.10 |
17. 배열과 포인트 (1) | 2019.05.03 |