제8 장 데이터 생 성
이 장 은 데 이 터 를 어떻게 효과적으로 생 성 하 는 지 를 말한다.좋 은 데이터 구조 가 가 져 온 수익 은 흔히 수요 분석 과 구조 디자인 단계 에서 나타난다.가능 한 한 좋 은 데이터 구조 가 가 져 온 수익 을 이용 하기 위해 수요 분석 과 구조 디자인 단계 에서 주요 데이터 구 조 를 정의 해 야 한다.
8.1 데이터 인식
데 이 터 를 효과적으로 생 성 하 는 첫 번 째 단 계 는 어떤 데이터 구 조 를 생 성 해 야 하 는 지 알 아야 한다.
프로그램 언어 가 프로그램 에 대한 이 해 를 밝 히 는 가장 강력 한 도구 중 하 나 는 프로그래머 가 정의 하 는 변수 유형 이다.그것들 은 프로그램 을 더욱 쉽게 읽 을 수 있다.자신의 유형 을 만 드 는 몇 가지 이유:
부동 소수점
Coordinate_t
에 대해 서 는 쌍 정밀도 부동 소수점 을 사용 할 수 있다 고 생각 하지만, 매우 확정 되 기 전에 단 정밀도 부동 소수점 만 사용 하고 싶 습 니 다.변 수 를 전문 적 으로 정의 할 수 있 습 니 다.typedef float Coordinate_t;
지금 은 프로그램 에 변화 가 생 겼 다 고 가정 하면 결국 이중 정밀도 변 수 를 사용 해 야 한 다 는 것 을 알 수 있다.하나의 유형 을 전문 적 으로 정 의 했 기 때문에 해 야 할 일 은 유형 정 의 를 바 꾸 는 것 일 뿐이다.그리고 한 곳 에서 만 변경 하면 됩 니 다.
Ada 와 Pascal 에 서 는 유사
Age_t = 1~99
유형 을 정의 할 수 있다.그 다음 에 컴 파일 러 는 실행 검사 정 보 를 만들어 Age_t
유형 이 항상 1 ~ 99 범위 내 에 있 도록 한다.C 에는 논리 적 인 유형 이 포함 되 어 있 지 않 습 니 다. 자신의 유형 을 구축 함으로써 이 단점 을 보완 하기 쉽 습 니 다.
typedef int Boolean_t;
8.3 자체 데이터 유형의 준칙
기능 이름 을 위 한 형식 만 들 기
컴퓨터 자체 의 데이터 형식의 이름 을 가리 키 는 것 을 피하 고 실제 문 제 를 대표 하 는 일부분 의 이름 을 사용 해 야 한다.
정 의 된 변수 형식의 이름 을 사용 하 는 것 을 피해 야 합 니 다.
예 를 들 어 BigInteger 와 LongString 등 은 컴퓨터 데 이 터 를 말 하 는데 객관 적 인 세계 에서 실체의 이름 이 아니면 사용 을 피해 야 한다.
정 의 된 형식 사용 피하 기
유형 에 변동 가능성 이 있다 면
typedef
과 type
정 의 를 제외 하고 정 의 된 유형 을 사용 하지 마 십시오.기능 을 위 한 유형 을 만 드 는 것 은 매우 쉬 우 며, 프로그램 에서 이 유형의 데 이 터 를 바 꾸 는 것 은 매우 어렵다.그리고 자체 적 으로 만들어 진 기능 유형 으로 변 수 를 설명 할 때 변 수 를 설명 했다.Coordinate_x
당신 에 게 알려 준 x 에 관 한 정 보 는 float x
보다 훨씬 많 습 니 다.따라서 가능 한 한 자체 건설 유형 을 사용 해 야 한다.정 의 된 형식 을 다시 정의 하지 마 십시오.
예 를 들 어 언어 에는 이미
Integer
유형 이 있 고 너 는 Integer
라 는 유형 을 자체 적 으로 만 들 었 다.프로그램의 읽 는 사람 은 종종 당신 이 정의 한 Integer
의 의 미 를 기억 하고 그것 을 언어의 표준 Integer
유형 으로 여 긴 다.이식 성 을 높이 기 위해 교체 유형 을 정의 합 니 다.
표준 유형 을 다시 정의 하 는 것 을 피 하 는 것 과 달리 표준 유형 에 교체 유형 을 정의 하고 싶 을 수도 있 습 니 다. 따라서 + 서로 다른 하드웨어 환경 에서 변 수 는 모두 같은 실체 + 를 대표 합 니까?예 를 들 어 표준
INT
유형 을 대체 할 수 있 는 유형 int
을 정의 할 수 있다. 그들 사이 의 유일한 차 이 는 바로 자모의 대소 문자 이다.그러나 프로그램 을 새로운 하드웨어 환경 으로 옮 길 때 하나의 INT
유형 만 다시 정의 하면 새로운 하드웨어 환경 에서 데이터 형식 을 낡은 환경 과 서로 어 울 릴 수 있다.다른 형식 으로 새로운 형식 만 들 기
이미 만들어 진 간단 한 유형 을 바탕 으로 복잡 한 유형 을 만 들 수 있다.이런 변수 유형 은 네가 원래 의 유형 으로 달성 한 유연성 을 더욱 보급 시 킬 수 있다.
8.4 변 수 를 쉽게 설명 한다.
템 플 릿 (template) 을 사용 하여 변수 설명
파일 에 변수 설명 템 플 릿 을 저장 합 니 다.새로운 변 수 를 설명 할 때 이 템 플 릿 을 프로그램 에 불 러 와 서 새로운 변 수 를 설명 할 수 있 습 니 다.다음은 C 로 작 성 된 템 플 릿 입 니 다.
extern * *; /* */
static * *; /* */
* *; /* */
extern 은 컴 파일 러 에 게 이 변수 나 함수 가 다른 문서 에서 정의 되 었 음 을 알려 줍 니 다.
이 템 플 릿 은 몇 가지 장점 이 있다.우선, 그 중에서 당신 이 요구 하 는 것 과 가장 가 까 운 줄 을 선택 한 다음 에 나머지 줄 을 삭제 하기 쉽다.둘째, 모든 줄 에서 '*' 의 역할 은 위 치 를 차지 하 는 것 이기 때문에 모든 줄 의 편집 위치 에 들 어가 기 가 매우 쉽다.셋째, '*' 변경 을 잊 어 버 리 면 문법 오류 가 발생 하여 알림 역할 을 합 니 다.넷 째, 템 플 릿 을 사용 하면 설명 형식의 일치 성 을 유지 할 수 있다.마지막 으로 미리 남 겨 진 주석 빈 칸 은 변 수 를 설명 할 때 주석 을 하 는 것 을 알려 줍 니 다. 이것 은 이후 의 프로그램 주석 작업 을 간소화 합 니 다.
암시 적 설명
일부 언어 는 함 축 된 변수 설명 기능 을 가지 고 있다.암시 적 설명 은 모든 언어 특성 중에서 가장 위해 성 이 있 는 특성 중의 하나 이다.
예 를 들 어 js 코드 의 한 줄 에서 제 가 사용 하고 싶 은 변 수 는 x 입 니 다. 결 과 는 타자 나 맞 춤 법 오류 로 인해 이 변 수 는 y 로 쓰 였 습 니 다. 결 과 는 '암시 적' 으로 변 수 를 설명 한 것 과 같 습 니 다. 이런 오 류 는 가끔 발견 하기 어렵 습 니 다.
변 수 를 명시 적 으로 설명 하 라 는 언어의 주요 장점 중 하 나 는 변 수 를 사용 할 때 더욱 신중 할 수 있다 는 것 이다.
8.5 데이터 초기 화 원칙
프로 그래 밍 에서 가장 큰 오류 원인 중 하 나 는 데이터 에 대한 부적 절 한 초기 화 입 니 다.다음은 오 류 를 초기 화 하 는 것 을 피 하 는 방법 입 니 다.
입력 매개 변수 에 모든 값 을 부여 하기 전에 합 리 적 인 지 를 먼저 확인 해 야 합 니 다.
흔히 볼 수 있 는 오 류 는 다음 에 그것들 을 사용 할 때 제거 작업 을 하 는 것 을 잊 어 버 리 는 것 이다.
Coverity 코드 정적 검색 도구
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.