포인터....
글쓴이: finenao / 작성시간: 화, 2004/03/16 - 4:11오후
typedef unsigned long U32; typedef unsigned short U16; typedef unsigned char U8; void function(U32 max, U8 *Data) { ........중략 RegValue = (U16)((*(Data)) & 0x00FF); ........중략 }
나름대로 해석을 해보았습니다.
0x00FF번지의 Unsigned char형 변수Data의 포인터로 선언된 값을 Unsigned short형으로 한다? 제가 해석한 방법이 맞는지.......무지 헷깔립니다. 조언 부탁드립니다.
Forums:
pOutData (pointer 겠죠?)가 가리키는 곳의 값을 char(
pOutData (pointer 겠죠?)가 가리키는 곳의 값을 char( U8 )로 읽어와서 0x00ff로 mask한 다음에 unsigned short(U16)형의 RegValue에 대입하는 것같군요.8)
해보진 않았습니다.
테스트 코드로
pOutData = "ABCDEF";
를 넣고 한번 돌려보면 금방 답이 나올것같네요.^^;-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
잘못된 구문이라서 컴파일 오류가 납니다.(U8 pOutData)
잘못된 구문이라서 컴파일 오류가 납니다.
(U8 pOutData) 부분만 보더라도
(unsigned char pOutData) <- 이건 변수 정의나 파라메터 선언에나
나올 수 있는 구문이겠죠...
돌아가는 코드를 그대로 옮기신 건지, 아니면 본인이 생각해 내신 코드인지..
대충 의도로 보면 16 바이트 값의 하위 바이트만을 얻어오려고 한 듯 합니다.
[quote="최종호"]잘못된 구문이라서 컴파일 오류가 납니다.(
정정해서 다시 올립니다. 물론 제가 생각한 코드입니다.
팔공산 아래에도 사람은 산다.
고친 코드가 원하는 바라면RegValue = *Data;로
고친 코드가 원하는 바라면
RegValue = *Data;
로도 같은 결과를 얻을 수 있어 보이는데요?
댓글 달기