*** printf() options
%hd - half decimal, 즉 short
%f - float와 double
%lf - long double
%5d - 우측 정렬, 빈칸 삽입
%+5d - 부호 표기
%-5d - 좌측 표기
%05d - 우측 표기, 좌측에 숫자'0' 삽입
%.2f - 소수점 이하 출력할 숫자의 개수 제한
0x%x 대신에 %p를 쓰면 자동으로 0x를 붙여준다.
주소 출력시 %p를 이용해 보자.
******************************************
*** 정수형과 실수형의 기본 자료형은 각각 int와 double이다.
따라서 int x = 10 에서는 형변형이 없지만
float y = 10.1 에서는 10.1을 double형으로 인식하여 이를 float로 자동 형변환 한다.
또한 다음의 경우 Error가 아니다.
static a[3];
이는 type을 안 써서 기본형인 int으로 인식하기 때문이다.
*** 기본 함수형태는 int FuncName (void) 이다.
따라서 int f1 (void) 의 경우 호출 전에 선언하지 않아도 인지한다.
******************************************
*** int main ( int argc, char * argc[], char * envp[] )
배열 envp 안에 환경 정보가 저장되어 있다.
이 배열의 마지막은 NULL이다.
******************************************
*** char * strdup (const char *)
입력 string의 메모리를 복사하는데, 또 다른 동적 메모리를 할당하여 복사한다.
추후 메모리 반환을 해줘야 한다.
******************************************
*** 지역변수를 stack에 저장할 때 I/O 크기에 따라 자동으로 메모리 공간을 일부러 띄운다.
char 형, short 형 변수를 각각 선언하면 stack의 높은 주소의 위치부터 차례로 이용하는데,
char 가 1byte이고 short가 2byte일 때 다음과 같은 경우가 될 수 있다.
예1)
8F - char
8E - 없음
8D - short 상위
8C - short 하위
예2) - visual C++ 6.0 실험 결과
8F - 없음
8E - 없음
8D - 없음
8C - char
8B - 없음
8A - 없음
89 - short 상위
88 - short 하위
******************************************
*** prompt 상에서 editor 실행
gedit &
-> gedit text editor 실행
kate &
-> gedit와 다른 text editor
******************************************
*** PC에서 vmware 상의 linux와 기본 OS인 winXP 사이의 ftp 파일 전송 방법
*** 주의 !!! 일부 설정 방법이 생략되어 있음
service vsftpd start
-> linux 內 ftp 서버 활성화
winXP에서 vmware 상이 linux의 IP에 대해서 ftp 연결 시도
ftp [Linux IP]
get, put 혹은 mget, mput 이용 파일 전송
******************************************
*** 틀리기 쉬운 C 문법
#define FLAG 0x02 일때
flag 변수의 bit 2가 set인지 확인하고자 한다면,
if (flag & FLAG) 를 써야 하는데,
if (flag & FLAG != 0) 로 쓰면 != 가 & 보다 우선하므로 틀린다.
val = high << 4 + low;
에서 high를 상위로 하고 low를 하위로 하는 것처럼 오인할 수 있는데,
산술연산자 + 가 먼저 실행되어 잘못된 계산을 하게 된다.
== 은 < , > 보다 우선 순위가 낮아서
n1 > n2 == n2 > n3
의 경우 == 가 나중에 되므로 주의한다.
치환연산자는 관계연산자보다 우선순위가 낮다. (사실 치환연산자는 제일 낮다.)
while ( c = getchar() != '\n' )
에서 != 를 먼저하므로 error이다.
******************************************
*** code 상에 정의되지 않은 값을 compile할 때 정의하는 방법
opPriorErr.C 파일을 cc를 이용하여 compile할 때,
'CASE' 라는 값을 '1'로 설정하려면
다음과 같이 '-D' 이후에 'CASE'를 입력한다.
cc -DCASE=1 opPriorErr.C
'Lang, Tool, Env' 카테고리의 다른 글
IEEE Floating-Point Format (1) | 2009.09.13 |
---|---|
chroot (0) | 2008.04.06 |
[cpp] fstream::getline() 쓸 때 clear()를 꼭 쓰자 (0) | 2007.08.04 |
C 프로그래머가 알아야 할 것들 (1) | 2007.05.16 |
CRC를 통한 error 검출 (0) | 2007.05.16 |