
void Func1()
{
int c = 1 + 2; //#1
Console.WriteLine(c);
} //#2
void Func2()
{
int a = 1;
int b = 2;
int c = a + b;
Console.WriteLine(c);
}
코드를 짜다보면 굳이 변수를 선언할 필요가 없다고 생각해서 'Func1 #1' 부분의 1, 2 처럼 리터럴을 바로 넣어줄 때가 있습니다
그럼 이때 리터럴도 메모리에 4 + 4 바이트가 할당되는 건가요?
혹여나 메모리에 할당이 된다면 제거되는 시점은
더 이상 쓸 수 없는 값이기에 #1 코드가 끝나는 곳인가요?
다른 변수들과 마찬가지로 #2 함수가 종료되는 곳인가요?
아니면 다른 곳인가요?
//
왜 이런 질문을 드렸냐면 유니티를 사용할 때 이런 경우가 있었습니다.
if (cards.transform.GetChild(RandomCard).Find("front").GetComponent<SpriteRenderer>().sprite.name
== cards.transform.GetChild(num).Find("front").GetComponent<SpriteRenderer>().sprite.name)
'가독성은 없어도 변수에 할당해서 메모리 낭비할 필요 없지 않겠나?'라는 생각으로 코드를 길~~~게 작성했지만
저 생각이 맞는 것인지 틀린 것인지 전혀 모르겠습니다😥
