본문 바로가기

프로그래밍12

Debugging, Testing and Analysis Assertion static_assert : complie time assert : runtime 에러체크를 컴파일타임과 런타임에 하여 얻게 되는 차이는? 컴파일 타임에 에러를 발견하는 것에 대한 장점이 있는지? Static Assertions 사전적의미// Assert - 주장, 단언하다 struct에서 padding의 역할 연산 횟수를 줄여준다? Runtime Assertions assert(scalar-expression) 프로그램 실행과정에서 작동 포인터에 메모리가 잘 할당되었는지 변수가 제대로 할당되었는지 등등 Compiler Settings and Flags Phases of Software Development Analysis Debugging Bug Fixing Testing Verify.. 2022. 11. 7.
'Static' in C language Variable 프로그램이 시작될 때 할당 프로그램이 종료될 때 파괴 Function 외부 파일에서 접근할 수 없음 - 같은 프로젝트 내의 다른 소스코드에서 동일한 이름의 함수를 여러개 생성 가능 (외부에서 접근할 수 없기 때문에 가능하다) 2022. 10. 27.
객체 지향 프로그래밍 OOP Object Oriented Programming 어디서나 설명하는 기본적인 개념에 대해 먼저 정리해본다. 기본 개념 1. Abstracition (추상화) '컴퓨터의 구조와 설계' 중 컴퓨터 설계자와 프로그래머는 자원의 수가 급격히 증가함에 따라 설계 시간이 길어지는 방지하기 위해서 생산성을 높이기 위한 기술을 개발해야 했다. 하드웨어와 소프트웨어의 생산성을 높이는 핵심 기술 중 하나는 여러 수준에서 설계를 명시하는 추상화(Abtraction)이다. 하위 수준의 상세한 사항을 안 보이게 함으로써 상위 수준의 모델을 단순화한다. 2. Encapsulation (캡슐화) 정보은닉 다른 곳에서 미치는 영향을 최소화 3. Generalization (상속) 4. Polymophism (다형성) 클린코드 중 추상 인터페이스를 제공해 사용자가 구현을 모른채 자료.. 2022. 10. 25.
Program Structure Principles of Componentization sources include files coupling and cohesion low coupling, high cohesive Code Reuse Standard library에 존재하는 기능의 함수는 새로 만들지 말고 가져다가 사용하자 -> 다른 사람들이 더 빨리 이해 가능 Data Abstractions public interface implementaion details Opaque Types external header files remain private Executables 컴파일러는 코드를 object 파일로 출력한다. link phase를 지나면 excutables로 출력됨 - a.out , foo.exe - a library - a.. 2022. 10. 19.