본문 바로가기

분류 전체보기70

C 문자열 함수 정리 # C 대표적 문자열 처리 함수 헤더파일 1. string.h 2. ctype.h char * gets ( char * str ); - 표준 입력(stdin)에서 문자를 읽고 개행문자나 파일 끝에 도달 할 때까지 str에 C 문자열로 저장 - 개행 문자가 발견되면 str에 복사되지 않음 - 널 문자는 str에 복사 된 문자 뒤에 자동으로 추가 * 매개변수 - char * str 읽은 문자열을 C 문자열로 복사할 메모리 블록을 가리키는 포인터 * 반환 값(char *) 성공하면 함수는 인자로 넘긴 포인터를 반환 오류가 발생하면 null 포인터 반환 int puts ( const char * str ); - str이 가리키는 C 문자열을 표준 출력(stdout)에 쓰고 개행문자를 추가 - 함수는 널 문자에 .. 2020. 8. 24.
02. 간단한 설계를 위한 원칙과 패턴 모든 내용은 [오즈 모리하루 저, "C와 C++ 게임 코드로 알아보는 코딩의 기술", 한빛미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요! # 객체 지향 설계에는 기본적인 사고방식과 원칙이 있다. 원칙에 너무 집착하는 것은 좋지 않지만, 어느 정도의 설계 방침으로 삼아 개발한다면 도움이 될 것이다. 1. 캡슐화, 응집도, 결합도 - 위 3가지는 보수성이 높은 클래스를 설계할 때 사용하는 기본요소 - 위 3가지를 의식하기만 해도 코드 품질은 매우 좋아짐 - 객체 지향 언어 이외의 범위에도 사용할 수 있는 중요한 개념 * 캡슐화(encapsulation) - 객체 내부의 변수 또는 구현 상세를 사용자로부터 은폐하는 것 - 멤버변수를 p.. 2020. 8. 23.
문제해결 및 실습 : C++(3학년 1학 학교에서 강의를 통해 공부하면서 조금씩 적어놨던 것을 기록하고자합니다. 내용이 많지는 않습니다. struct 구조체명 { ... }; - 구조체와 클래스의 차이점은 단지 디폴트 접근 지정자의 차이 뿐이다. (구조체는 public, 클래스는 priviate) - C++에서 구조체 객체 생성 시에 "struct 키워드"를 사용하지 않는다. e.g. struct Circle { ... }; Circle circle; - 클래스 선언부에서 정의한 함수의 경우에는 자동으로 인라인화 된다. - 함수 호출에 대한 오버헤드를 막기 위해서는, 크기가 작고 자주 호출되는 함수에 대해 인라인화 하는 것이 좋다.(inline 키워드 사용) - 인라인화는 컴파일러에 의해 이루어지며, 컴파일러가 임의로 인라인화 하는 경우도 있다.. 2020. 8. 22.
03. 소스 코드 품질 측정 모든 내용은 [오즈 모리하루 저, "C와 C++ 게임 코드로 알아보는 코딩의 기술", 한빛미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요! # 매트릭스 측정 - 소스 코드의 품질을 정량화할 수 있다. - 코드의 유지성 또는 가독성을 일정한 기준에 따라 수치로 평가할 수 있다. 1. 파일 또는 함수 단위 매트릭스 1) 코드줄 수 - 적을수록 좋음 2) 주석줄 수 - 적을수록 유지보수가 어려울 것으로 예상 3) 문장줄 수 - 적을수록 좋음 * 문장(statement) : 프로그램 하나의 작동을 나타내는 단위 4) 최대중첩 수 - 적을수록 가독성이 좋음 5) 사이크로매틱 복잡도 : 제어 흐름의 복잡성을 수치화, 제어문 수가 많을수록 수치.. 2020. 8. 22.