register 키워드 에 관한 질문
글쓴이: ssehoony / 작성시간: 수, 2004/02/04 - 1:00오후
register 키워드를 사용하여 등록할 수 있는 변수가 몇개 정도 되는지
궁금합니다. 플랫폼이나 컴파일러 등등에 따라 달라질 수 도 있을 법 한데요
제 환경은 리눅스, gcc, pentium 3 입니다.
이런 환경이라면 register 키워드를 이용해 몇개까지 등록이 가능한걸 까요?
그리고 그 변수가 reg 에 등록이 되었지는 안됐는지 알 수 있는 방법이 있나요?
그리고 레지스터에 등록된 변수의 포인터를 받아서 사용 할 수 도 있나요?
register 키워드에 사용에 대한 뭔가 좋은 자료가 있으면 좋겠네요.
뭐랄까.. 이렇게 사용하면 효율적이다 라던가 뭐 그런거요.
그럼 좋은 하루 되세요 ^^
Forums:
register 변수가 반드시 레지스터에 저장되는 것은 [b]아닙니다[/
register 변수가 반드시 레지스터에 저장되는 것은 아닙니다. register 키워드는 그냥 "이 변수 많이 쓸 거니까 왠만하면 레지스터에 넣어주라~" 라고 알려주는 겁니다.
컴파일러가 봐서 레지스터에 넣을 필요가 없거나 넣기 어려울 때, 그리고 가능한 경우보다 많은 register변수가 있을 때에는 register 키워드를 그냥 무시합니다. 따라서, 몇개의 변수라도 register 키워드를 사용해서 등록할 수 있습니다. 너무 남용하면 의미가 없어지니까, 많이 쓸 것 같은 변수에만 걸어 주면 됩니다.
레지스터 변수가 실제로 레지스터에 있지 않더라도 메모리 주소는 받아올 수 없습니다. (실제로 레지스터에 있을 수도 있으니까요...)
----
It is essential, if man is not to be compelled to have recourse, as a last resort, to rebellion against tyranny and oppression, that human rights should be protected by the rule of law.
[Universal Declaration of Human Rights]
c언어에서 보장되지 않은 키워드들이 많습니다.inline이나 re
c언어에서 보장되지 않은 키워드들이 많습니다.
inline이나 register가 그 중의 하나이죠. inline이 된다는 보장도 없고 register가 된다는 보장도 없습니다.
그리고 register는 요즘 안 쓰는 것이 좋다고 알고 있습니다. 우리가 register를 걸어둬서 그걸 컴파일러가 보호하다 보면 정작 컴파일러가 최적화해야 할 부분이 못하게 되니깐요.
- 죠커's blog / HanIRC:#CN
죄송합니다만...register 필요없습니다.Trust Your
죄송합니다만...
register 필요없습니다.
Trust Your Compiler! 입니다...
그리고 위의 분 말씀대로 경우에 따라서 쓰는게 오히려 성능이 떨어질 수도 있습니다.
정말 너무 critical한 부분이라서 register 지정이 필요하다면.. 그 부분을 assembly로 짜는 것이 좀더 확실할 겁니다.
댓글 달기