l-value 2
-
C++에서는 구조체를 선언하고 내부에 함수를 생성해줄 수 있다. 그러나, 구조체는 선언전에 메모리할당이 발생하지 않는다. 그럼으로 함수는 CODE 영역에 메모리가 할당되어 실행되게 되는데. 구조체 안에 함수가 존재하지 않음으로 사실 구조체는 함수를 실행할 수 없다. 구조체 내부에서 함수를 선언하고 실행하는건 다음과 같은 방식을 따른다. Print함수가 구조체 내부에서 선언됨을 볼 수 있다. 그러나, 함수는 구조체 내부에 존재하여도 구조체는 선언 전에 메모리 할당이 일어나지 않음으로 함수 메모리에 존재하나. 실행할 수 없다. 그럼으로 구조체 내부에 존재하는 함수는 __thiscall 을 내부에 붙여서 구조체 내부에서 함수를 다시 호출해준 뒤. 괄호 안에 자신의 구조채를 선언하여 동작하게 된다. 즉, 위에서..
-
프로그래밍 언어는 선언시 형식, 변수, 초기화 의 순으로 이루어진다. 다음 예시를 살펴보자. 여기서 int a = 10; 이라는 변수가 선언되었을 때. L-value 는 a이고, R-value 는 10 을 의미한다. L-value R-value 변수 선언시 왼쪽의 변수명 또는, 대입연산자가 들어갔을 시의 왼쪽 변수를 이야기한다. 변수 선언시 오른쪽의 상수 또는 대입연산자가 들어갔을 시의 오른쪽 상수, 변수 를 이야기한다. 식이 끝나도 나중에 다시 접근이 가능하다. int a를 선언했을 때, 나중에 a를 선언함으로써 다시 호출이 된다. 식이 끝나면 나중에 다시 접근할 수 없다. int a = 10 이라고 했을 때. 10이라는 상수가 선언된 후 식이 끝나면 10에 접근할 방법이 사라진다. 변수 그자체이기 때..