Programming Languages/C++(3)
-
Argument와 Parameter의 차이점
Argument 와 Parameter 는 종종 같은 의미로 사용된다. 근데 다른 이름을 가지고 있기 때문에 어떤 차이가 있나해서 구글링을 해보니 역시나 좋은 문서가 있었다.1 이 둘의 차이점은 의외로 간단하다. Parameter 는 선언 부분에 있는 것이고, Argument 는 실제 사용시의 데이터를 의미한다. 하지만 이건 정확히 말하면 C++ 에서 더 정확하게 구분이 된 것이다. // a, b 는 Parameters int func( int a, int b ); // 10, 2 는 Arguments // ... 어떤 함수 안에서 ret = func( 10, 2 ); // ... 이 부분과 관련되서 류광님이 번역과 관련된 기술을 한적이 있다.2 1. 출처 : Understanding the Differe..
2008.08.26 -
CRT 함수 사용시 deprecated 경고 표시하지 않기
Visual C++ 6.0 Project를 2005 or 2008로 Conversion하여 작업을 하다 보면 Compile 시에 CRT 함수들에 대한 많은 Deprecated Warning 을 볼 수가 있다. 물론 권장하는 보안 버전 함수(_s)를 사용하는 것이 이롭겠지만, 가끔은 잘 동작하고 Test 된 코드에 대해서는 이러한 Warning을 막을 수가 있다. Visual C++ 2005의 새로운 기능 중 하나는 보안 버전을 갖는 CRT 함수를 제공하는 것이다. (http://msdn2.microsoft.com/ko-kr/library/ms235429(vs.80).aspx) 보안에 약했던 기존 버전의 여러 함수가 이제는 사용되지 않는다. strcpy와 같은 string 함수들과 open등과 같은 POS..
2008.07.23 -
Name Mangling
extern "C" 는 name mangling을 방지하는 역할을 합니다. name mangling이란 컴파일 시 함수이름 앞 또는 뒤에 언더바(_) 등을 덧붙이는 것을 말합니다. C++에서, 주로 오버로딩 함수들을 상호 구분하기 위해 함수이름 앞뒤에 특정 문자/숫자들을 컴파일러가 덧붙이게 됩니다. 굳이 오버로딩 함수가 아니더라도 함수이름 앞에 기본으로 언더바를 붙이기도 합니다. extern "C"는 이런 것들을 해당 함수에는 하지 말라고 일러주는 것입니다. C++ 컴파일러는 C 컴파일러와 다르게, 프로그래머가 지정한 함수 이름을 그대로 사용하지 않습니다. 프로그래머가 Func()라는 이름으로 함수를 만들었다고 해도, 이 이름과 동일한 함수들을 C++에서는 만들 수 있죠. 어떤 Func()라는 함수는 정..
2008.07.23