'임베디드'에 해당되는 글 1건

임베디드 기초 교육 정리 :: 2007/08/26 11:33

*** 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

크리에이티브 커먼즈 라이센스
Creative Commons License
2007/08/26 11:33 2007/08/26 11:33
Trackback Address :: http://www.neodelicious.com/trackback/62
< PREV #1  | NEXT >