programing/Common16 바인딩과 스코프 바인딩 : 이름(변수, 배열, 라벨, 절차 등)을 그것이 포함하는 것(메모리 주소, 데이터 형 또는 실제 값)에 연결하는 작업> 언어 설계시 : 연산자와 연산의 바인딩 > 언어 구현시 : 데이터 유형과 데이터 유형이 가질 수 있는 값의 바인딩(자료형) > 프로그램 작성시 : 알고리즘, 데이터 구조, 모듈 이름에 대한 바인딩 > 컴파일 시 : 변수와 데이터 유형 > 링크 시 : 메모리 내의 프로그램 전체 레이아웃을 확정(개별 모듈 ex. lib) > 로드 시 : 물리적 주소 선택 (C언어의 경우 정적변수) > 실행 시 : 변수에 메모리 값을 바인딩 - 정적 바인딩 : 프로그램 실행 이전, 이른 바인딩(early binding)> C언어에서 상수에 값을 바인딩 > C언어에서 함수의 정의에 함수 호출을 바인딩.. 2016. 8. 2. DLL에서 STL 사용시 문제 Warning 4251 > STL 컨테이너 정의에 _declspec(dllexport) 선언이 되어있지 않은 클래스템플릿을 export 할 경우 해결 방법 > vector만 사용시 템플릿을 인스턴트 화 시킨 후 사용 (vector는 워낙 많이 쓰는 거라 특별이 되도록 만들었기 때문) template class __declspec(dllexport) std::vector; > 그 이외엔 #pragma warning(disable : 4251) 출처 : http://mgun.tistory.com/508 2015. 5. 14. C++ Optimization Strategies and Techniques http://www.tantalon.com/pete/cppopt/main.htm 2015. 5. 8. 프로그램 실행 과정 실행 파일의 생성단계 전처리기 -> 컴파일러 -> 어셈블러 -> 링커 -> 실행파일>>어셈블리어코드 생성 >>바이너리코드 생성 >>라이브러리 묶음 1.전처리기에 의한 치환작업 '#'으로 시작하는 지시자의 지시에 따라서 소스코드를 적절히 변경하는 작업을 한다. 2.컴파일러에 의한 번역 컴파일러는 c코드를 컴퓨터가 알아들을 수 있는 기계어인 어셈블리어로 변환시켜준다. 3.어셈블러에 의한 바이너리 코드 생성 어셈블리어는 컴퓨터에 의해 실행되기에 앞서 컴퓨터가 이해할 수 있는 바이너리 코드로 번역되어야 한다. 어셈블러는 어셈블리어로 이루어져 있는 명령어를 0 1로 이루어져 있는 바이너리 코드로 변형시켜 주는 일을한다. 4.링커에 의한 연결과 결합 프로그램 내에서 참조하는 함수나 라이브러리들을 하나로 묶는(혹은 .. 2015. 5. 7. 이전 1 2 3 4 다음