IOS 매크로 와 상수 사용 에 대한 자세 한 설명(define,const)

소 편 은 IOS 중 홍(define)과 상수(const)에 대한 정확 한 사용 방법 을 정리 해 이 방면 의 내용 을 더욱 깊이 이해 하 는 데 도움 이 된다.
우리 가 전체 국면 에서 데 이 터 를 공유 하고 싶 을 때 매크로,변수,상수 를 사용 할 수 있다.
매크로:
\#define HSCoder@"한 스 하하 하"
변수:
NSString*HSCoder=@"한 스 하하 하";
상수:

    :
static const NSString *HSCoder = @"     ";
const NSString *HSCoder = @"     ";
NSString const *HSCoder = @"     ";
NSString * const HSCoder = @"     ";
const 수식 의 위치 가 다 르 면 다른 뜻 을 대표 합 니 다.
NSString const*와 NSString*const 는 전자 가 포인터 가 가리 키 는 내용 을 수정 할 수 없다 는 것 과 달리 후 자 는 포인터 자체 가 수정 할 수 없다 는 것 을 나타 낸다.
가끔 만 날 수 있 습 니 다.

const NSString*에 경보 가 울 립 니 다.

NSString*const 로 바 꾸 면 안 돼.둘 이 다르다 는 뜻 이다.


사고:매크로 와 상/변수의 선택?
매크로:사전 프로세서 에서 텍스트 를 교체 할 뿐 형식 이 없고 어떠한 종류의 검사 도 하지 않 습 니 다.컴 파일 러 는 같은 문자열 을 최적화 할 수 있 습 니 다..rodata 세그먼트 에 만 저장 합 니 다.심지어 같은 접미사 의 문자열 도 최적화 할 수 있 습 니 다.GCC 로 테스트 를 컴 파일 할 수 있 습 니 다.'Hello World'와'World'두 문자열 은 앞의 문자열 만 저장 할 수 있 습 니 다.취 할 때 는 앞 과 가운데 주소 만 주 고 성형,부동 소수점 형 이 라면 여러 부 복사 되 지만 이 수 는 명령 에 적 혀 있다.코드 세그먼트 만 차지 합 니 다.매크로 를 많이 사용 하면 바 이 너 리 파일 이 커 집 니 다.
변수:메모리 공간 을 공유 합 니 다.프로젝트 에서 N 을 사용 하 더 라 도 N 개의 메모리 공간 을 할당 하지 않 습 니 다.수정 할 수 있 습 니 다.컴 파일 단계 에서 형식 검 사 를 수행 합 니 다.
상수:메모리 공간 을 공유 합 니 다.프로젝트 에서 N 을 사용 하 더 라 도 N 개의 메모리 공간 을 할당 하지 않 습 니 다.const 가 수식 하 는 위치 설정 에 따라 수정 할 수 있 는 지,컴 파일 단계 에서 유형 검 사 를 수행 할 수 있 습 니 다.
상수 구분
전역 상수:모든 폴 더 에 정의 되 어 있 든 외부 에 접근 할 수 있 습 니 다.
const NSString*HSCoder=@"한 스 하하 하";
예 를 들 면:


부분 상수:static 로 수식 한 후 외부 방문 을 제공 할 수 없습니다.
static const NSString*HSCoder=@"한 스 하하 하";
일반 항목 에 서 는 전역 상수 가 정의 되 어 독립 파일 에 적 혀 있 습 니 다.
예:


좋은 웹페이지 즐겨찾기