달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

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

  1. 2007.08.26 임베디드 기초 교육 정리

*** 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
Posted by neodelicious
|