728x90
반응형

링크 5

dll, Dynamic Link Library 와 lib, Static Link Library 의 차이

Dynamic과 Static의 차이를 안다면.. 일반적으로 정적인 것은 프로그램의 수명주기 내내 있을 것이고 동적인 것은 프로그램 실행 중에서 할당 해제가 되는 것을 의미한다는 것을 추측할 수 있다. 맞나 확인해보자 1. 동적 라이브러리(Dynamic Link Library) 프로그램 실행 시 필요시에만 외부 DLL 파일에서 함수를 참조 다시 말해서, 정적 링크와는 다르게 컴파일 시점에 실행 파일에 함수를 복사하지 않고 함수의 위치 정보를 이용해서 그 함수를 호출할 수 있게 한다. 예를 들면 정적 라이브러리와는 달리 클래스라고 치면 객체를 하나만 만들고, 해당 객체의 포인터를 이용한다고 생각하면 된다. 즉, 코드만 가져다쓰고, exe에 포함되지 않는다. dll로 뽑아내고 싶은 함수를 골라서 뽑을 수 있다..

미구분 2021.12.19

C 문법/ 소스파일부터 실행파일까지, From source To exe

우리가 쓴 코드가 어떻게 실행되는 것일까? 컴파일러의 역할은 무엇일까? 중간 중간 산출물은 도대체 뭘 위해 필요한 것일까? 알아보자 소스파일, Source File (원시 코드라고도 한다) -> 프로그래밍 언어로 작성된 문서 (Text Editor로 쓰인 모든 문서) -파일형식( filename.c 또는 .cpp) Source File은 우리가 이해하기 쉬운 언어(프로그래밍 언어)로 쓴 것으로 Compiler를 이용해 어셈블리어라는 기계어 전 단계의 언어로 바꾼다. ** 누구는 컴파일러 자체가 기계어로 바꾼다하는데(사실이 아니다) 그렇게 Interface가 적어지면 범용성이 떨어진다. 중간에 Assembly 라는 Interface를 달아서 이식성과 범용성을 높인다. ++그러나 대부분의 컴파일러가 어셈블러..

[C언어] 자료구조 - 그래프 기본연산 연결리스트 -3

이번에는 배열이 아닌 연결리스트로 구현할건데 뭐 그래프의 목적 자체는 똑같으니까 그렇게 어렵지는 않아. 오히려 더 쉬울수도 있다? 이런식으로 만드는거다? 어 근데 연결리스트에는 순서가 있는데 어떻게 하냐고?? 순서는 상관없어ㅋㅋㅋㅋ 그리고 무방향그래프인 경우에는 조금 번거로운게 a와 b가 이어져있다면 b와 a도 이어져있는 거겠지?? 그래서 그런 것 또한 고려해줘야할 필요가 있지. 이런 식으로 간선 없는 것들도 이렇게 표현하고 방향그래프면 이렇게 할 수 있고 그러면 코드랑 같이 보자. 이런식으로? 짤 수 있어 이제 무방향일 때는 간선 2개 만들어야하는 것도 잊지말고 이런식으로 짜면 된다 이제 더 연산에 대해 알아볼건데 탐색은 조금 특별해서 다음 글에서 알아보자.. 내가 쓴 코드가 전부가 아니니,, 원하는 ..

[C언어] 자료구조 - 그래프 -1

이어서 그래프에 대해서 배워볼건데... 그래프가 눈에 가장 잘띄는데 코딩은 가장 귀찮은 듯한 느낌이야. ㅠㅠㅠㅠㅠ 뭐 그래프는 뭐 요소들끼리 서로 연결되어 있는 관계를 나타내는 자료구조인데.. 말도 쉽고, 눈도 쉽지만 ,, 손은 어려운 ㅋㅋㅋㅋㅋ 아무튼 최단경로찾는 그런 교통어플리케이션도 이러한 그래프를 이용하는 경우가 정말 많다. 지하철 노선도 처럼 ~~~도로 끝나는 것은 거의 다 그래프다. ㅋㅋㅋ 그래프의 역사를 올라가고 싶지만... 너무 길기에 바로 본론으로 들어가자 그래프의 정의를 보자 vertex 와 edge로 이루어지며 다르게 불리기도 한다. 정점(vertices) 또는 노드(node) •여러 가지 특성을 가질 수 있는 객체 의미 •V(G) : 그래프 G의 정점들의 집합 간선(edge) 또는 ..

[C언어] 자료구조 - Tree 트리 구현 -2

저번엔 트리의 성질, 개념에 대해 알아보았고 이번에는 구현을 어떻게 할지? 그리고 어떠한 기본연산을 할지? 알아보겠다. 뭐 기본적으로 삽입, 삭제, 탐색이 있을건데 이게 자료구조가 선형적인 구조가 아니라서 삽입과 삭제에는 일반적으로 하는 연산이 아닌 뭔가 다른게 있다. 우선 이진트리를 구현하는데에는 2가지가 있는데 1. 배열, Array 2. Linked List, 연결리스트 1. 배열, Array 배열로 이진트리를 구성할 때는 높이에 따라 배열의 크기가 정해지는데 즉 h의 높이를 가지고 있으면 2^h-1 크기의 배열은 있어야 노드를 다 넣을 수 있겠지? 그렇지만 트리의 넘버링(numbering)을 1부터 시작하니까 배열의 인덱스랑 트리 넘버를 맞춰주려면 0번째 인덱스는 사용하지 않는게 더 눈에 잘들어오..

728x90
반응형