반응형
값으로 전달할 때 "const"가 중복되지 않습니까?
이 질문에 이미 답변이 있습니다.
- 함수 매개 변수에 'const'사용 30 답변
큐브의 부피를 계산하는 함수를 발견했을 때 C ++ 책 (Deitel)을 읽고있었습니다. 코드는 다음과 같습니다.
double cube (const double side){
return side * side * side;
}
"const"한정자를 사용하는 것에 대한 설명은 다음과 같습니다. "const 한정은 최소 권한 원칙을 적용하는 데 사용되어야하며 컴파일러에게 함수가 변수 측을 수정하지 않는다는 것을 알려야합니다."
내 질문 : 변수가 값으로 전달되기 때문에 여기서 "const"중복 / 불필요한 사용이 아니므로 함수가 어쨌든 수정할 수 없습니까?
const
규정 파라미터 자체를 수정하는 기능을 내부 코드를 방지한다. 함수가 사소한 크기보다 클 때 이러한 보증은 함수를 빠르게 읽고 이해하는 데 도움이됩니다. 의 값이 side
변경되지 않는다는 것을 알고 있다면 시간이 지남에 따라 읽는 동안 그 값을 추적하는 것에 대해 걱정할 필요가 없습니다. 어떤 상황에서는 컴파일러가 더 나은 코드를 생성하는 데 도움이 될 수도 있습니다.
일반적으로 좋은 스타일을 고려할 때 사소한 수의 사람들이 당연히 이것을합니다.
다음과 같이 할 수 있습니다.
int f(int x)
{
x = 3; //with "const int x" it would be forbidden
// now x doesn't have initial value
// which can be misleading in big functions
}
참고 URL : https://stackoverflow.com/questions/8714250/isnt-const-redundant-when-passing-by-value
반응형
'code' 카테고리의 다른 글
node.js에서 지원되는 Javascript 버전 (0) | 2020.10.22 |
---|---|
Eclipse 컴파일러 또는 javac의 버그 ( "T의 유형 매개 변수를 결정할 수 없음") (0) | 2020.10.22 |
Go 맵에서 항목을 계산하는 방법은 무엇입니까? (0) | 2020.10.21 |
CSS FlexBox 레이아웃의 이미지 자동 크기 조정 및 종횡비 유지? (0) | 2020.10.21 |
반응 구성 요소에 클래스 이름 전달 (0) | 2020.10.21 |