Programming/C & CPP 4

[ETC] Symbol, DWARF, Name mangling

Symbol Absolute address를 가질 수 있는 최소 단위. DWARF 표준화된 디버깅 자료 형식. Compile 시 symbol table을 생성하기 위한 data format. https://flystone.tistory.com/163 DWARF 출처, http://visu4l.tistory.com/402 DWARF 자체가 tool은 아니고, 컴파일 시 symbol table을 생성하기 위한 data format 입니다. 이 형태로 컴파일 하기 위해서는 libdwarf 라는 라이브러리가 필요하며, arm에.. flystone.tistory.com Name mangling Compiler 가 일련의 규칙으로 함수나 변수의 name을 변경하는 것을 의미한다. 기본적으로 overloading을 ..

Programming/C & CPP 2021.10.13

[Build] Linker, ELF

>> Linker 실제 함수 정의부 위치와 전역변수들의 위치를 libray file 과 object file에서 차례대로 조사한 후에 모두 Talbe로 간직하고 있다가, 그 주소를 함수 호출 코드 부분에 기록해 넣는 역할을 한다. File을 탐색하여 어떤 함수를 불러야 하는지, 다른 파일에 있는 코드까지 모두 연결한다. >> ELF Executable and Linking Format의 약어입니다. UNIX / LINUX 기반에서 사용되는 실행 및 링킹 파일 포맷 출처 : http://recipes.egloos.com/5011946 Linker를 마무리 짓자 - ELF와 fromelf 까지! - Linker란, 결국 Link시에 실제 함수 정의부의 위치와 전역변수들의 위치를 library file과 ob..

Programming/C & CPP 2021.10.13

[Concept] C vs C++ vs C#

C : Procedural Language (절차적 언어) - Concept 자체가 Programmer를 믿는 언어. C++ : C의 특성을 유지하면서 Object oriented 의 Concept까지 집어 넣었다. C에 비해 느슨하게 Coding 할 수 있게 끔 STL, Inline 함수, 자유로운 변수 선언 등의 여러 기능이 추가 되었다. C# : C를 계승한 C++과 달리 아예 처음부터 객체지향을 위해 새롭게 설계 된 언어. Pointer가 빠져있다. (Unsafe code를 이용해서 사용할 수는 있지만 기본적인 Concept에는 포인터가 빠져있다.) .Net Freamwork 에서 구동되기 때문에 Windows Application에 특화되어 있다. C ++ 로 Windows Applicaiton..

Programming/C & CPP 2021.10.13

C언어 Parameter

void main( int argc, char *argv[] ){ } argc 는 프로그램이 실행할 때 지정해 준 "명령행 옵선"의 "개수"가 저장되는 곳입니다.argc 운영체제가 이 프로그램을 실행했을때 전잘되는 인수의 갯수이다.함수를 호출하여 인수를 전달하는 것처럼 프로그램을 실행할 때 인수를 전달받을 수 있다.(도스에서 파일 카피, 이동과 같은 명령 시행시 처럼)첫번째 인수는 실행파일명으로 고정되어 있는데 이것도 인수에 포함하므로인수의 갯수는 무조건 1보다 크며 넘겨받는 인수보다도 1 크다. 이 값은 인수가 제대로 전달되었는지체크하는 경우에 사용된다. argv 는 프로그램을 싱핼할 때 지정해 준 "명령행 옵선의 문자열들"이 실제로 저장되는 배열입니다.argv 프로그램으로 전달된 실제 인수의 값이다...

Programming/C & CPP 2017.03.08