: 모든 파라미터 (포인터를 포함한다) 값에 의해 전달되기 때문에, 여기C에서 const (const T v)가 필요 없다는 것은 사실입니까? 예를 들어
void func(const int i);
의 const
는 불필요하다.
사실입니까?
: 모든 파라미터 (포인터를 포함한다) 값에 의해 전달되기 때문에, 여기C에서 const (const T v)가 필요 없다는 것은 사실입니까? 예를 들어
void func(const int i);
의 const
는 불필요하다.
사실입니까?
실제로 C의 모든 매개 변수는 값으로 전달되므로 실제 인수는 const
을 포함하는지 여부에 관계없이 변경되지 않습니다.
그러나 여기서는 const
이 "절대로 필요하지 않음"을 의미하지 않습니다. 필요하거나 불필요한 것은 달성하고자하는 것에 달려 있습니다.
함수 내에서 매개 변수를 수정하려는 시도를 막으려면 const
은 물론이 필요합니다.
함수 매개 변수를 함수 내부에서 수정해서는 안된다는, 즉 함수의 실행 지점에서 모든 매개 변수가 원래 값을 유지해야한다는 매우 일반적인 (매우 합리적인) 코딩 지침이 있습니다. 이 가이드 라인에 따르면 실제로는 은에 const
을 포함하고 은 모두 매개 변수 선언에 포함됩니다.
const를 단지 오류에 대한 통지, 프리 D 파일러에 의해 사용되는 ...이 완벽하게 유효한지
참고 :
void foo(const char * bar)
{
char * baz = (char *)bar;
baz++;
}
그래서 그럴 필요는 결코 없지만, 그냥 코드를 더 쉽게 읽을 ...
어쨌든 C에서 그 인수가 변경되지 않을 지의 여부는 나를 위해 치명적입니다 이 경우 ... – assem
'const T v'라고 쓰여진 책을 읽고 있기 때문에 이것을 묻습니다. 대신 const T * p를 사용해야합니다. – assem