언어는 c# 이고 특별한 이유때문에 포인터 쓰는데
public unsafe int foo(int* a)
{
int result = (*a); // 라인1
result += (*a) ; // 라인2
}
요렇게 코드가 있으면
라인1 에서는 포인터 a 에서 값을 로드하는게 맞는데
라인 2 에서도 마찬가지로 다시 값을 로드함?
아니면 컴퓨터가 값을 기억했다가 로드 없이 바로 쓰나?
- dc official App
result += 윗쪽에 실제 값이 바뀌는 경우인가?
ㄴㄴ 나는 포인터 a 가 가리키는 값을 말하는거임 - dc App
ㅇㅇ 포인터 a가 가리키는값이 해당 메소드에서 연산중에 바뀌는건가 싶어서
ㅇㅇ 포인터 a 가 가리키는 값은 그대로임 - dc App
최적화 나름
이거는 컴파일러 최적화 수준에 따라 다름? - dc App
ㅇㅇ