분류 전체보기337 CS50 - 포인터의 크기와 메모리의 크기의 관계는? 아래는 CS50 포인터 강의를 듣고 생각해보기 질문에 내가 작성한 댓글이다. 개념을 잊지 않도록 적어두자 생각해보기 - 포인터의 크기는 메모리의 크기와 어떤 관계가 있을까요? 나의 답: 주소값을 표현하는 방법은 32bit 63bit 등등 으로 운영체제마다 다르다. 포인터는 메모리의 주소값를 가리켜서 저장하기 때문에 이 주소값을 온전히 저장할 만큼의 크기를 가져야한다 때문에 운영체제에 따라 포인터의 크기는 다르게 정해진다고 할 수 있다 포인터 크기가 작으면 메모리 주소값을 모두 표현 못하므로 포인터로 표현 가능한 주소값의 크기를 넘지않는 메모리만 사용가능하다 . 더 큰 용량의 메모리를 사용하여도 그 메모리의 주소를 가리킬 숫자가 없으니 자원으로 쓸 수 없는것이다 하지만 포인터 크기가 크다면 메모리의 주소값.. 2022. 6. 6. 구조체, typedef c언어에서는 같은 속성을 가진 변수들을 모아 메모리 상에서 연속되는 주소값을 갖는 하나의 데이터 묶음으로 표현한다 이를 구조체 structure type 라고 한다 구조체는 메모리 상에서 연속되는 주소값을 갖는다 메모리에서 연속되는 주소값을 갖는 것은 배열이므로, 구조체를 변수들의 배열로 볼수도 있다 변수를 저장가능하므로 배열, 주소값, 포인터도 저장가능하다 구조체 안에 구조체가 없으면 (중복 구조체가 아니면) 1차원 배열과 같다고 볼 수 있고, n번의 중복을 가진 구조체라면 n차원 배열과 같다고 볼 수 있다 (=내부 변수로 배열을 갖는 경우) 배열의 성질을 갖기에 연속되는 주소값을 이용해서 포인터로 다룰수도 있을 것이다 구조체를 만들때는 일반적으로 다음과 같은 방법으로 선언, 초기화한다 strutct .. 2022. 6. 6. 전처리, 컴파일, 어셈블, 링크 preprocess 전처리, 미리 처리하다 말그대로 프로그래밍 코드를 컴파일 하기전에 처리하는 과정을 말한다 컴파일 하기전에 몇 가지를 한 번 손본다고(재구성한다) 알면 되겠다 아래와 같은 것들이 전처리 대상이다 전처리 지시자 ex) #include, #pragma, #ifndef 등등 매크로 ex) #define 조건부 컴파일 ex) #if ~ #elseif ~ #else ~ #endif, #ifdef~ 조건 사용 주석 ex) // 이거랑, /* 이것들 */ link 연결, 연결하다 전처리가 라이브러리 등에서 #include 등을 통해 키워드 함수의 내용을 가져왔다면 링크는 그 라이브러리들이나 코드 실행에 필요한 파일들을 연결해서 실행 파일 exe 를 만드는 과정을 말한다 c언어에서 파일이 컴파일 후 .. 2022. 6. 5. assemble, 어셈블리어 assemble 모으다, 짜맞추다, 조립하다, 집합하다 이전에 공부하며 컴파일 후에 컴파일 된 파일로 저장되었다가 기계어로 변환된다고 공부했었다 https://tokkic.tistory.com/6 parse 와 compile parse 와 compile parse 와 compile 을 영어사전에서 해석한 것으로 이해하면 쉽다 parse : (문장을 문법적으로) 분석하다 parsing 은 우리가 입력한 프로그래밍 언어를 의역없이 기계어로 바꾸는 과정이다. tokkic.tistory.com "컴파일(compile)은 parsing 된 것을 모아서 기계어 문법에 맞도록 순서를 배치하는 것이다" 라고 했었는데 컴파일 한 결과물도 바로 바이너리(2진수)로 저장되는 것이 아니었다! 난 그런줄 알았다! cpu를 제어.. 2022. 6. 4. 이전 1 ··· 71 72 73 74 75 76 77 ··· 85 다음