1
A
답변
3
왜 하나는 휘발성을 만들 것입니다 : 그리고 이러한 목표를 달성 할 다음과 같은 선언의 휘발성 변수를 가리키는 휘발성 포인터를한다고 가정 바늘?
예 : 포인터가 백그라운드 프로세스에 의해 갱신되는 데이터에 액세스합니다.
2 개의 차이 목표를 충족
Stuff * volatile VideoFrame;
for (;;) {
Block_Changes();
Stuff MyCopy = *VideoFrame;
Allow_Changes();
Use(&MyCopy);
}
나는이 작업을 수행 할 다음과 같은 선언의 휘발성 변수를 가리키는 휘발성 포인터를 원한다.volatile int * volatile pData;
은 다음과 같습니다
pData as volatile pointer to volatile int
1 일
volatile int *pData;
는 휘발성 데이터에 대한 비 휘발성 포인터 :
pData as pointer to volatile int
volitle
키워드는 가장 자주 이러한 맥락에서 사용된다. @ Eugene Sh.
0
수정 기호 '휘발성'을 사용하는 한 가지 이유는 컴파일러가 변수를 존재하지 않게 최적화하지 않기 때문입니다.
수정 기호 '휘발성'을 사용하는 또 다른 이유는 코드가 해당 변수를 참조 할 때 일부 레지스터에 남아있는 값이 아닌 실제 변수에 액세스 할 때입니다.
'휘발성'수정자를 사용하는 또 다른 이유는 변수 값이 현재 프로그램의 제어 범위 밖에서 변경 될 수있는 경우입니다. 예를 들어 하드웨어 레지스터 또는 '인터럽트'가 응용 프로그램이 읽는 변수를 업데이트 할 때.
관련 문제
- 1. 휘발성 UINT8 포인터 - C 프로그래밍
- 2. C : 함수에 대한 휘발성 포인터 선언
- 3. 휘발성 sig_atomic_t의 올바른 사용
- 4. C# 포인터 사용
- 5. 배열 및 휘발성 사용
- 6. C++에서 휘발성 void **에 대한 포인터 캐스팅
- 7. 왜 휘발성 포인터 convserion이 유효하지 않은가
- 8. C 휘발성 메모리 모델
- 9. C++ 11 : 스마트 포인터 사용
- 10. C++ : cin.getline()에서 포인터 사용
- 11. C++에서 포인터 배열 사용
- 12. C : char * const 포인터 사용
- 13. C++ 코드의 휘발성 관련 오류
- 14. C# 및 C의 휘발성 차이
- 15. java 및 C++ 11 휘발성
- 16. C++ 객체에 대한 휘발성 키워드
- 17. C#의 비 휘발성 개체
- 18. 휘발성 POD 유형의 컨테이너
- 19. 다중 스레드 응용 프로그램의 휘발성 C/C++
- 20. C/C++ 머드 코드에서 asm 휘발성 문제
- 21. C에서 휘발성
- 22. C 포인터 (포인터 값)?
- 23. C 포인터 포인터 질문
- 24. C++의 포인터 포인터
- 25. C 포인터 (포인터, 문자)
- 26. ** 포인터 사용 **
- 27. C++, SQLite - 문자열 포인터 포인터
- 28. C++ 클래스 내에서 술어 함수 포인터 사용
- 29. 포인터가있는 객체에 대한 포인터 사용 C++
- 30. C++에서 명시 적/원시 포인터 사용
가변 변수를 변경해야하는 이유는 알고 있습니까? – Yunnosch
@Yunnosch은 컴파일러에게 변수가 언제든지 바뀔 수 있으므로 메모리에 보관해야한다는 것을 컴파일러에 알리는 데 사용된다는 것을 알고 있습니다.하지만 누군가가 휘발성 포인터를 사용하는 이유는 확실하지 않습니다. – Trey
확실하게 강사가 예상합니다. (i) 강의 노트를 참조하십시오. (ii) 추천 독서 내용을 참고하십시오. 또는 (iii) 스스로 생각하십시오. (iii)의 경우, 당신은 적어도 당신의 사고 방식의 어떤 것을 제시 할 수 있어야합니다. –