프로그래밍 상수는 프로그램 실행 전반에 걸쳐 값이 고정 된 정의입니다. 예를 들어 대부분의 언어에서 리터럴은 상수입니다. 참조 적으로 투명한 프로그래밍 스타일에서 모든 정의는 일정합니다. const-qualified 데이터 저장 영역 (객체, 필드, 변수, 매개 변수)은 "변경되지 않는"영역이므로 추가적인 코드 생성기 최적화 및 프로그램 정확성에 대한 추가 정적 검사가 가능합니다.
표준 for 루프를 고려하십시오. for (int i = 0; i < 10; ++i) { // do something with i } 변수 i가 본문에서 수정되는 것을 방지하고 싶습니다 .for루프 . 그러나, 나는 선언 할 수 없습니다 i로 const이 증가 문을 유효하게한다. 증분 문 외부 i에서 const변수 를 만드는 방법이 있습니까?
컨테이너 요구 사항이 C ++ 03에서 C ++ 11로 변경되었습니다. C ++ 03에는 포괄적 인 요구 사항 (예 : 벡터에 대한 복사 구성 및 할당 가능성)이 있었지만 C ++ 11은 각 컨테이너 작업에 대한 세부적인 요구 사항을 정의합니다 (섹션 23.2). 따라서 할당이 필요하지 않은 특정 작업 만 수행하는 한 (construction …
저는 Objective-C를 처음 사용하며 const및 전처리 지시문 에 대해 몇 가지 질문이 #define있습니다. 첫째,을 사용하여 상수의 유형을 정의 할 수 없음을 발견했습니다 #define. 왜 그런 겁니까? 둘째, 그중 하나를 다른 것보다 사용하면 어떤 이점이 있습니까? 마지막으로 어떤 방법이 더 효율적이고 더 안전합니까?
내 이해에서 const수식어는 오른쪽에서 왼쪽으로 읽어야합니다. 그것으로부터 나는 그것을 얻습니다. const char* char 요소는 수정할 수 없지만 포인터 자체는 수정할 수있는 포인터입니다. char const* mutable문자에 대한 상수 포인터 입니다. 하지만 다음 코드에 대해 다음과 같은 오류가 발생합니다. const char* x = new char[20]; x = new char[30]; //this works, as …
동적으로 상수 이름을 만든 다음 값을 얻으려고합니다. define( CONSTANT_1 , "Some value" ) ; // try to use it dynamically ... $constant_number = 1 ; $constant_name = ("CONSTANT_" . $constant_number) ; // try to assign the constant value to a variable... $constant_value = $constant_name; 그러나 $ constant 값에는 여전히 VALUE가 …
나는 가지고있다: unsigned char *foo(); std::string str; str.append(static_cast<const char*>(foo())); 오류: invalid static_cast from type ‘unsigned char*’ to type ‘const char*’ 여기서 C ++ 스타일로 캐스팅하는 올바른 방법은 무엇입니까?
둘 중 어느 것이 상수를 정의하는 것이 더 나은지 잘 모르겠습니다. 구조체 또는 열거 형. 구조체는 사용할 때마다 복사됩니까? static let상수 가있는 구조체에 대해 생각할 때 제 생각에는 항상 복사 될 것이라는 것은 의미가 없습니다. 그러나 그것이 복사되지 않으면 내가 무엇을 가져가는 것이 중요하지 않습니까? 구조체 또는 열거 형을 선택하면 …