\ # define 과 enum, 네가 모 르 는 것들
2405 단어 임 베 디 드 개발싱글 칩 마이크로컴퓨터C/LinuxC
\ # define 이 비교적 적은 변수 에 적합 할 때.
enum 키워드 로 상수 (즉 매 거 상수 설명) 는 다음 과 같은 몇 가지 장점 이 있 습 니 다.
(1) 프로그램 을 쉽게 유지 할 수 있 습 니 다. 매 거 진 상수 가 컴 파일 러 에 의 해 자동 으로 생 성 되 기 때문에 식별 자 상수 가 프로그래머 에 의 해 수 동 으로 할당 되 어야 합 니 다.예 를 들 어 프로그램 으로 매 거 진 상수 그룹 을 정의 할 수 있 습 니 다. 발생 할 수 있 는 오류 번호 입 니 다. 다음 예 를 보십시오. enum Error_Code { OUT_OF_MEMORY, INSUFFICIENT_DISK_SPACE, LOGIC_ERROR, FILE+NOT_FOUND }; 상례 에서 OUT OF MEMORY 등 매 거 진 상수 가 컴 파 일 러 에 의 해 0, 1, 2, 3 으로 자동 할당 되 었 다. 마찬가지 로, 당신 도 \ # define 명령 으로 유사 한 상수 그룹 을 설명 할 수 있 습 니 다. 다음 예 를 보십시오. #define OUT_OF_MEMORY 0 #define INSUFFICIENT_DISK_SPACE 1 #define LOGIC_ERROR 2 #define FILE_NOT_FOUND 3 상술 한 두 사례 의 결 과 는 같다.
(2) 프로그램 디 버 깅 을 더욱 편리 하 게 합 니 다. 일부 식별 자 디 버 깅 프로그램 은 상수 의 값 을 인쇄 할 수 있 기 때 문 입 니 다. 이 점 은 디 버 깅 프로그램 에서 매우 유용 합 니 다. 프로그램 이 상수 의 하 나 를 사용 하고 있다 면. 행 문 에서 멈 추 면 바로 이 상수 의 값 을 검사 할 수 있 습 니 다. 반대로 대부분의 디 버 깅 프로그램 은 식별 자 상수 의 값 을 인쇄 할 수 없 기 때문에 헤더 파일 에서 이 상수 를 수 동 으로 검사 해 야 합 니 다. 의 값.
매크로 정의 와 의 차이 점 과 연결:
매 거 진 것 과 define 는 swthich 를 사용 할 수 있 습 니 다. 매 거 진 것 은 유형 안전 이 아 닙 니 다. 매 거 진 것 은 성형 값 만 정의 할 수 있 습 니 다. define 는 거의 모든 값 을 정의 할 수 있 습 니 다.
enumNodeType { AND, OR};
voidmain()
{
NodeType type;
switch(type)
{
caseAND:break;
caseOR:break;
}
return0;
}
매크로 와 매 거 진 간 의 차 이 는 주로 작용 하 는 시기 와 저장 형식 이 다 르 고 매크로 는 예비 처리 에 있다.
코드 세그먼트 의 텍스트 를 바 꾸 는 단계 입 니 다. 프로그램 이 실행 되 는 과정 에서 매크로 가 아 닙 니 다.
존재 합 니 다. 매 거 진 것 은 프로그램 이 실 행 된 후에 야 작 동 합 니 다. 매 거 진 상수 가 데이터 세그먼트 에 저 장 됩 니 다.
정적 저장 소 에 있 습 니 다. 매크로 는 코드 세그먼트 의 공간 을 차지 합 니 다. 공간 을 차지 하 는 것 외 에 CPU 도 소모 합 니 다.
자원
그러나 이것 이 매 거 진 것 보다 매크로 가 좋다 고 말 할 수 는 없다. 만약 에 많은 상수 가 필요 하 다 면 하 나 를 사용 하 라.
enum {.....} 은 많은 define 보다 뚜렷 하고 매 거 진 것 도 정의 할 수 있 습 니 다.
특수 유형, 예 를 들 어 Bool, 예 를 들 어:
type enum {FALSE,TRUE} Bool;
요약:
define :
: , 、 、 。
: ( ), , ;
。
enum :
:
: , 。
, 。
enum。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
하 이 얼 에어컨 리모콘 YR - M10 디 코딩 테스트집에 여러 개의 하 이 얼 에어컨 이 있 는데 리모컨 은 아래 와 같다.그것들 은 협의 가 같 지 않 기 때문에 에어컨 간 의 어떤 기능 부분 은 서로 통 하고 어떤 것 은 완전히 통 하지 않 는 다.그 중 하나 인...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.