2011-08-22 3 views
0

내 C 코드에서 추가 경고가 발생하는 상황에 처해 있습니다.유형 휘발성 문자를 레지스터 char 유형으로 캐스팅

warning # 2513-D : "volatile char *"유형의 값을 "char *"유형의 엔티티에 지정할 수 없습니다. A = B;

register char *A; 
extern volatile char *B; 

사람이 내가 위의 경고를 무시 캐스팅 입력 어떻게 저를 제안시겠습니까 : 난 내 코드를 검사 할 때

나는 A와 B는 다음과 같이 정의되어 있음을 발견했다. 내가 형체를 주면 나쁜 영향이나 부작용이 있을까요? 나는 그것이 잘 작동하고 경고를 제거하더라도 A의 선언을 바꾸고 싶지 않습니다. 그러나 A의 선언을 변경하면 코드에 큰 영향을 미칩니다.

어떤 방법 으로든 제안하십시오.

감사 GOLDI

답변

0

레지스터 키워드는 무시할 수 있습니다. 에는 다른 생산 것이다 B를 사용하여 동일한 계산, 반면 volatile 사용되는 (A의 새로운 값을 사용하면) 오래된 값을 초래할 수있는 몇 가지 최적화 것을 의미 멀리 캐스팅

A = (char *) B; 

같은 캐스팅 (논증 할 수 더 나은) 결과. 우리가 C에 대해 말하고 있다고 가정하면, C++은 비슷하지만 AFAIK가 같지 않습니다.이 경우 중요하지 않아도됩니다.