문자열을 저장할 때 어떤 곳에서는 signed char를 쓰고
다른 곳을 unsigned char를 쓰는 데 이유를 모르겠다.
오늘의 두번째 삽질이다.
처음에는 그냥 casting하면 잘 되리라고 보고 그렇게 했는 데.
출력 결과가 안나와서 당황했다.
메모리가 꼬여서 값을 아예 안 넣는 줄 알았다.
사실은 제대로 값을 넣고 있었지만 casting이 잘못된 것이었다.
결국 소스의 모든 부문의 문자열을 signed char로 바꿨다.
(C언어에서는 주로 signed char*를 쓰는 것 같고, 어떤 snmp 모듈은 unsigned char*를 썼다.)
signed char* <-> unsigned char* casting은 어찌되는 지 궁금하군.
댓글 없음:
댓글 쓰기