은 "register struct"legal입니까? GCC의 표준 및 (표준과 분리 된)면에서?C90 - C99 : 레지스터 구조체
3
A
답변
3
예. (인용문 없음, 거기에 아무런 제한이 없다. 배열에 레지스터를 사용하는 것이 유효하고 배열이 구조체 인 C에서 훨씬 더 2 류 시민이다.).
3
그렇습니다. 그러나 레지스터는 컴파일러가 시도 할 수있는 힌트 일 뿐이므로 실제로 어떤 구현도이를 실제로 듣지 않아야합니다. 또한 레지스터에 할당 된 공간 내에 저장할 수없는 구조체를 만드는 것도 쉽습니다.
기계 종속적 문제에 가까워지기 시작하면 하드웨어의 종류가 다양하므로 모든 아키텍처에서이 수준에서 똑같은 사항이 안정적으로 가능하지 않으므로 표준의 일부분은 단순한 제안 일뿐입니다.
2
예 유효합니다.
register
을 키워드로 사용한다고해서 변수가 레지스터에 저장된다는 의미는 아닙니다. (기본적으로 C에는 이것에 대한 개념이 없습니다). 은이 변수의 주소를 취하지 않음을 의미합니다..
관련 문제
- 1. C90 및 C99에 대한 명확한 문법은 어디에서 찾을 수 있습니까?
- 2. C99 코드와 C99 코드를 혼용 할 수 있습니까?
- 3. OpenMP 및 C99 데이터
- 4. c99 동적 배열
- 5. 배열 재 할당 (C99)
- 6. C99, C 코드
- 7. 레지스터 단축키
- 8. 명령어로드 레지스터
- 9. 구조체 callc c
- 10. MS 컴파일러의 경우 C99 fenv.h
- 11. 목표 C의 -std = C99 사용
- 12. 더 좋은 c89 또는 c99
- 13. 레지스터 할당 알고리즘의 효율성
- 14. C 레지스터 호출 규칙
- 15. 팩토리 대리자가있는 레지스터 유형
- 16. 레지스터 관리 팁
- 17. PHP 레지스터 시스템
- 18. GCC의 레지스터 값 덤프
- 19. MXCSR 제어 레지스터 범위?
- 20. vim에서 레지스터 결합하기
- 21. 스택 포인터 레지스터 값
- 22. MIPS $ gp 레지스터
- 23. 일반 목적 레지스터
- 24. GCC 레지스터 최적화
- 25. Windows에서 _CONTEXT 구조체 디버깅 : 방법?
- 26. C99 가변 길이 자동 배열 성능
- 27. 인텔 8086 조립, 원칙적으로 레지스터
- 28. 어셈블리 : 데이터 세그먼트 레지스터 (DS)
- 29. Arduino의 이진 시프트 레지스터 연산
- 30. 약 어셈블리 조건 코드 레지스터
'register'가 제약 조건 위반을 부과하기 때문에 그렇지 않다면 키워드 의미를 갖는 것이 더 유용 할 것이기 때문에 "이 두 값 사이의 주소가 * 사용되지 않는 한이 값의 값은 변경되지 않습니다. ". 'register x, y;와 같이 주어집니다. getCoords (&x,&y);'컴파일러는'getCoords'를 호출하는 동안'x'와'y'를 메모리에 저장해야만하지만 나중에 레지스터에 캐시 할 수 있습니다. 최적화에 유용하며 컴파일러가 이해할 수없는 것 표준을 너무 심하게 생각하면 ... – supercat
제약 조건 위반 – supercat
@supercat, 당신은 정말로 오래된 것을 여기에서 파 냈습니다. 아니오, 그런 종류의 최적화가 더 나은 것으로 남았습니다. 컴파일러, 나는 생각한다. 실제로 존재하는'register'는 마커이다. 나는이 변수가 별칭이되는 것을 원하지 않는다. 그리고'const' qualification과 결합하여 매우 유용 할 수있다. –