반응형
인증서 구조 의미론
구조 유형 변수의 인스턴스를 뽑아야 할 인스턴스를 선택할 수 있고 (필드가 재진입 코드에서 액세스 할 경우), 아니면 구조의 특정 필드가 인증으로 선언해야합니까?
다르게 표현하면 다음 사이의 의미 적 차이 (있는 경우)는 무엇입니까?
typdef struct {
uint8_t bar;
} foo_t;
volatile foo_t foo_inst;
과
typedef struct{
volatile uint8_t bar;
} foo_t;
foo_t foo_inst;
포인터 형식 변수를 인증서 (예 : volatile uint8_t * foo)로 선언하는 것입니다. 구조 변수에 대한 비유가 적용 여부는 나에게 명확하지 않습니다.
귀하의 예에서 두 가지가 동일합니다. 그러나 문제는 포인터를 중심으로합니다.
먼저 ,
volatile uint8_t *foo;
인증서 메모리가 인증서임을 컴파일러에 알립니다. 포인터 자체를 인증서로 표시 한 다음 수행해야합니다.uint8_t * volatile foo;
그리고 여기서 서열을 인증서로 표시하는 것과 식별 필드를 표시하는 것의 주요 차이점을 알 수 있습니다. 다음과 같은 경우 :
typedef struct
{
uint8_t *field;
} foo;
volatile foo f;
다음과 같이 작동합니다.
typedef struct
{
uint8_t * volatile field;
} foo;
그리고 싫어 :
typedef struct
{
volatile uint8_t *field;
} foo;
volatile로 구조를 선언하면 모든 멤버도 인증서가됩니다.
참고 URL : https://stackoverflow.com/questions/2044565/volatile-struct-semantics
반응형
'ProgramingTip' 카테고리의 다른 글
HTTP POST / GET 요청에 대해 ASP.NET ASMX 웹 서비스 활성화 (0) | 2020.11.18 |
---|---|
함수에 특정 크기의 배열 변수가있는 경우 포인터로되는 이유는 무엇입니까? (0) | 2020.11.18 |
실제 장치에서 디버그하는 방법 (Eclipse / ADT 사용) (0) | 2020.11.18 |
ImageView의 기본 ScaleType은 무엇입니까? (0) | 2020.11.18 |
AngularJS : 모든 양식 오류 프로그램 (0) | 2020.11.17 |