backup/c,c++
-
sizeof operatorbackup/c,c++ 2011. 12. 2. 12:30
MSDN : http://msdn.microsoft.com/en-us/library/4s7x1k91.aspx sizeof는 연산자로서 데이터타입이 사용되지 않을 경우에는 괄호없이도 사용이가능하다. 또 컴파일 타임에 컴파일러가 피연산자를 상수로 치환해 주기 때문에 속도의 제약이 없다고 볼 수 있다. sizeof(NULL)의 경우는 시스템에 따라 값이 달라지는데, NULL은 #define NULL ((void*)0) 로 정의된 포인터로서 os의 주소와 동일한 크기를 반환한다. sizeof를 매크로로 만든다면. #define SizeOf(type) (unsigned int)(&((type*)0)[1])
-
가변인수backup/c,c++ 2011. 10. 12. 15:42
가변인자 함수 ANSI C 는 인수의 타입이나 개수를 다양하게 취할 수 있는 함수를 선언하기 위해 '가변인자 함수(varages 함수 or variadic 함수)'라는 구문을 정의 하고 있다. 1. 왜 가변인자 함수들이 사용되는가? 원래 C 함수들은 고정된 개수의 인수들을 취한다. 함수를 정의할 때, 인수의 개수와 인수의 데이터 타입을 정의하면 변경이 불가능 하다. '가변인자 함수'는 함수가 호출 될때 마다 인수의 개수를 변경 할 수 있고 타입에 있어서의 변경도 가능하다. 2. 어떻게 가변 인자 함수를 정의하고 사용하는가? 1) #include '가변인자 함수'라는 것을 사용하기 위해서는 'stdarg.h' 헤더 파일이 필요하다. ※ 오래된 C 에서는 'varargs.h'를 사용해서 다양한 개수의 변수를..
-
private 멤버 접근backup/c,c++ 2010. 1. 19. 21:43
연산자 오버로딩중에 생긴 의문점... 짐작은해도 확실한 뭔가가 없어 답답하기만 했는데 지식IN에서 좀더 확실히 이해할 수 있는 답을 찾았다. 열강을 보던 도중 Account& Account::operator=(const Account& acc) { delete[] name; name = new char[strlen(acc.name)+1]; id = acc.id; //id, balance, name은 모두 Account클래스의 private 멤버변수 balance = acc.balance; strcpy(name, acc.name); return *this; } 위의 코드에서 빨간색 코드부분.. 즉 인자로 넘어온 객체의 레퍼런스를 사용해 private멤버에 직접 접근하고 있다는 것이다. 여기서 문득 든 생각..