본문 바로가기

프로그래밍/C,C++

(19)
바이트오더~ 비트 스트림~ byte order ~ 바이트 오더~네트웍이나 비트 스트림에서 기본적으로 발생하는 실수 중에 하나이다~ 같은 나라 사람이라면 같은 말을 쓰면 되니 상관없지만다른 나라 사람들과 의사소통을 위해선 아무래도 공통적으로 쓰는 말을사용해야 한다. 하필이면 그것이 한국어,한글이 아닌 영어라서 문제지만 -_-;;; 네트워크 상의 데이터도 마찬가지~이놈들은 다른건 괜찮은데 short, long 같은 2byte 이상의 숫자에만서로 해석하는게 틀리다~ 이런저런거 다빼고~ 일단 유닉스 시스템은 빅엔디안 시스템이고, 인텔계열은 리틀엔디안 시스템이다. 빅엔디안이란 MSB 부터 부호화 되며,리틀엔디안이란 LSB 부터 부호화 된다. 또 뭔소리랴~말그대로 MSB 는 최상위 비트, LSB 는 최하위 비트를 뜻한다. MSB 부터 부호화..
delete obj, delete [] obj 차이 메모리 동적 할당을 위해 c++ 에서는 new,해제를 위해 delete를 사용한다. delete 구문 중에 delete [] 는 무슨 이유일까? * int 형 메모리를 할당과 해제하기 위해서는 pData = new int;delete pData; * int 형 100개의 메모리를 할당과 해제하기 위해서는 pData = new int[100];delete [] pData; 이거시 기본 문법(?) 이다. 이거야 다 아는 것이지만... 헌데 왜 저렇게 쓸까? 단순히 배열이기에 배열처럼 해제하려고?배열을 그냥 delete pData; 하면 해제가 안될까? 적어도 VC++ 에서는 잘된다.문제가 생기지도, 릭도 안생긴다~ 그럼 도대체 왜!!! 저렇게 쓸까? 그 이유는 new, delete가 클래스나 구조체등의 오브..
[C] 1. c style...............................................................................................................c 형태의 전역함수 void func(int a); // 함수원형void (*pCall)(int); // 함수포인터 ◎ note;리턴값 void, 인자 int 한개를 가지는 함수의 주소를 담는 변수를 pCall로 선언한다. ◎ 값넣기;pCall = func;pCall = &func; 두가지 모두 가능하나 2번째로 사용하는게 편리.첫번째는 함수의 호출과 혼돈할 여지가 있음. ◎ 호출;pCall(1);(*pCall)(1); 두가지 모두 가능. 2. c++ style...................