달력

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

0306

printf:print function 프린트 함수

printf("hi\n");

\n : 라인피드(줄바꿈)와 캐리지 리턴(커서가 맨 앞에)기능이 모두 실행됌.

윈도에서 만든 코드를 리눅스에서 보면 ^M이라 표시됌. 텍스트 표시상 호환이 안 돼서 그럼. 500줄 이상의 코드 외에는..실행상 문제 


없음.


컴퍼일하면 리눅스, 윈도에서 다르게 동작할 때가 있음.

이는 리눅스냐 윈도우냐가 문제가 아니라 그 안에 있는 컴파일러(gcc vs VS)의 차이 때문.

리눅스 컴파일명령어는 gcc. cc입력해도 gcc로 알아서 바꿔줌.

유닉스에 있는 컴파일러에는 cc (gnu가 개입안했으므로).



주석은 전처리과정에서 사라져서 어셈블리파일에는 포함되지 않음.

주석이랑 전처리지시자# 모두..c문법이 아니므로 ;이 없다.


진수관련

13 = 8 + 4*0 + 2 + 1 = 1011

hexa decimal 6+10. 16진수. x로 많이 씀

D 10진수

O. Octabal. 8진수

B. Binary. 2진수


printf("%d\n",1234);

% : 형식지정자

d : decimal 10진수

o,x(X로도 표기가능. 나머지는 대문자로 불가).  b는 안 됌


계산회로책 (논리회로, 계산회로 만듬)


변수의 메모리상 존재위치, 인식방법

질> 주파수. 한 클락이 변경시키는 전자소자 상태와 방식

number1=number2 과정

num2->cpu->num1

질> 모니터와 버스로 연결된 부위. cpu(연산결과, 상수출력), memory(변수값 출력). 

Posted by C언어 보이
|


cl /P main.c -> .i 파일 생성

cl /Fa main.c -> .asm 파일생성

cl main.c -> .exe 파일 및 .obj 파일생성


기계어는 2(bin)진수이나 화면표시의 편리상 16진수로 보여줌(hexa view)


작성->.c 전처리(에러)->.i  컴파일(에러)->.asm 어셈블러->.obj 링크(에러)->.exe 실행->런타임 에러

                  C           assembly       기계어  

리눅슨는..gcc () -o                      .s             .o


윈도우 실행기준 1. 현재위치 기준으로.. 1)이름만 2) 이름.exe

                2. path에 등록된 경로위치에서...

유닉스가 직접X.. gcc가 .c를 보고 실행파일인지 여부 결정. .c면 실행

                 경로는.. 윈도처럼 현재위치가 항상 기준은 아님. ./를 명시해야..다른폴더 파일을 지우거나 실행할 위험이 없음.


-r/rwx/---/---

/소유주/그룹/기타

업무일지 방식 : [smart]이름-날짜(-과제명)

도스창에서 notepad main.c


#include<stdio.h> //전처리 영역으로서 C가 아님. .c->.asm 이전에.. .c->.i 하는 부분. 이 한줄이 .i 오천줄 정도.

 //#은 다 전처리 영역. stdio.h 안에 또 다른게..include 됨...

                  //이렇게 다 include 하면...   .i 파일로 만들어 짐.

                  //헤더파일들은.. C:\Program Files\Microsoft Visual Studio 10.0\VC\include에 있음.


int main(void)    //C

{

printf("Hello world! \n");

return 0;

}

<> include 폴더 안에서 stdio.h 파일을 찾으라는 말임.

include 폴더 경로도 설정가능.

리눅스창에서.. 아디->usr->include->ls -al stdio.h


main 엔트리포인트 즉 진입점. (윈도우에서는 winmain)

return 함수실행전의 상태로 돌아오라 (즉, 함수 종료).

return 뒤에 뭐 적으면 그냥 종료 됌.

0은.. 일할 때 문제없으면 0을 넘기라.고 C표준에 정의 됌.

질> 엔트리포인트 두 개 이상 가능?



Posted by C언어 보이
|

cd -> 로그인시 폴더로 이동

ln -s  /mnt/hgfs/One/oyj cwork 바로가기 생성


종단 컴----종단 컴. terminal. zterm.

기계어->assembly->bctl/b->c->c++

컴파일러 : 윈도 : visual studio 유료 (집에서만 쓰지 않고 만든 걸 상용판매나 인터넷 공유면 전


화옴. 잡히면..원래 가격의 열배)

           리눅스 : gcc (gnu c compiler) 무료

작성->.c 전처리->.i  컴파일->.asm 어셈블러->.obj 링크->.exe

                  C           assembly       기계어  

시스템속성->고급->환경변수->admin 변수->path

mspdb100.dll

cl /? 컴파일 옵션 설명

윈도우 도스창에서 cl main.c가 컴파일 안 될 때..필요 라이브러리명이 없다는 메시지가 뜨는 데..

(그 라이브러리명 주소+;)를 환경변수의 lib 변수의 변수값에 넣으면..실행 됨.


cl main.c -> .exe 파일 및 .obj 파일생성

cl /Fa main.c -> 어셈블리 파일생성

Posted by C언어 보이
|

리눅스/vi
분리자
 - 한글계통 프로그램 \
 - 영문쪽 /
vi .vimrc (vimrc내용을 참조하라는 말)

set number : 숫자나옴
확장명령어 모드 : wq : write 후 quit

      1 기본적인 환경설정
      2 set nu
      3 set ts=4  들여쓰기
      4 set shiftwidth=4 
      5 set cindent
      6 set nowrap
      7 set ai
      8 set aw

리눅스 종료명령 ctrl+d (윈도 엑스버튼 사용은 나쁜 버릇)
gcc -o main main.c (출력할 이름을 main으로 해라는 뜻)
gcc : gnu c compiler
-o : output (출력)
main : 실행파일로 할 이름
main.c : 내가 작성한 파일 (따라서 내가 작성한 파일명은 외우고 있어야 함)
./main에서 ./은 현재위치

- 앞으로 아래내용 항상 띄워놓기
      1 \include <stdio.h>
      2
      3 int main()
      4 {
      5         printf("good 음냐\n");
      6
      7         return 0;
      8 }
      9
     10

비쥬얼 스튜디오 명령 프롬프트
실행창 우클릭메뉴 '표시'누르고 경로 드래그, 우클릭.
비쥬얼 스튜디오 명령 프롬프트에서.. cd 우클릭메뉴 붙혀넣기 클릭
main.exe exe는 execute 실행파일

HDD드라이브명이 C인 이유. 옛날 컴 a,b는 FDD..c가 HDD. 영문자 c와의 구별을 위해 c:
d드라이브는 ODD (optical disk drive)

도스창에서 chcp 437 -> 영문모드로. 현재모드를 437 모드로.
           chcp 949 -> 한글모드로.
           .은 현재위치를 말함.
    ..현재위치 기준으로 상위 디렉토리
           \ 뿌리 디렉토리

절대경로
상대경로

리눅스명령어 cp a.c d.c(a.c를 카피하여 d.c생성). 이 명령의 풀은.. cp ./a.c ./d.c
      cp a.c ./a.c == cp a.c a.c  == cp a.c . (셋 다 상대경로) 
             == /mnt/hgfs/One/oyj/a.c
 
상대경로를 이용한 복사 cp a.c ./test1/ : 현재위치의 하위 디렉토리 test1에 a.c를 복사
                       cp a.c ./../    :     "      상위  "      에 a.c를 복사

mv : move. 파일을 이동하거나 이름을 바꾸는데 사용
rmdir smart : remove smart directory
rm a.c : a.c를 삭제
rm -rf smart : smart라는 폴더 강제삭제. - (묻지말고). remove force (강제삭제)


 

'C언어 업무보고' 카테고리의 다른 글

0305 업무보고 리눅스 파일생성  (0) 2014.03.06
0304 업무일지 전처리,컴파일  (0) 2014.03.04
0228 리눅스,명령어,vi  (0) 2014.02.28
0227 리눅스 명령어  (0) 2014.02.27
0226  (0) 2014.02.26
Posted by C언어 보이
|

- 리눅스는 문제없으면 메시지 없음. 문제있어야 메시지.
- pwd : 경로
- 리눅스, 도스 명령어 path, tree : 트리구조로 폴더구조 보여줌
- 윈도우 창에서 우클릭, 명령창열기 : 도스창으로 열림
- 윈도우 우클릭으로 새폴더 만들 때..mkdir 명령어가 자동 입력. 즉 mkdir 명령어가 없으면 새폴더 - 안 만들어짐. 즉..그래픽 유아

이 클릭시 명령어가 자동 입력 됨.
- 드래그 (ctrl c). 우클릭 : ctrl v. 즉, 드래그 상태에서 우클릭 : ctrl c, v.
- 리눅스 암호안보이게 하는 이유 : 암호글자뿐만 아니라 암호길이도 유출안되게 (유닉스도 마찬가지)
- 리눅스식 메모장(visual) 호출 : vi main.c (main.c라는 이름의 visual 생성)
- 쉬프트키, set number
- esc 눌러도 반응없는 상태 : 명령상태 : 키보드를 눌르면..키보드 글자입력(에디트 상태)이 아니라..키보드에 할당된 명령이 수행

됨 (조심해야 함).
-ll (ls-l의 약자)
- rm.파일명.확장자명 : 파일 지움

 

- visual (vi) 명령어
 - 콜론 -> 확장명령 상태 (제일 밑으로 뭐가 생김)
 - 세미콜론 ->
 - i : insert 글자삽입 상태로 됌 : 에디트 상태.
 - esc : 에디트 나 확장명령 상태에서 -> 명령상태로

- 명령상태에서 j, k, h, l : 아래, 위, 좌, 우. 에디트상태에선 j k h l
- 명령상태에서 w (word 칸 이동),dd(잘라내기),dw(한 단어 삭제), d2+윗키+엔터(현재 줄 포함 윗 쪽 2줄 삭제). d+u (언두). 백스페

이스(방향이동), 딜리트키나 x키(한 글자씩 삭제), 대문자 d(현재위치부터 라인끝까지 다 지움),
y(카피), p (위로 붙혀넣기), 대문자p(아래로 붙혀넣기), 대문자 j (밑에 줄을 현재줄과 붙임), r+문자(커서가 있는 한 글자를 입력문

자로 고침)

- 확장 명령상태에서 숫자 엔터 : 원하는 숫자의 행으로 이동
- 확장 명령상태에서 w (write저장), q엔터(도스창으로 나옴), q!엔터(저장않고 강제로 도스로 탈출)

- 해커스접속법 윈도우 실행창에서 : telnet ftz.hackerschool.org
- 해커스쿨 트레이닝2 아디/비번 : trainer2/linuxer
- 해커스쿨 트레이닝3 아디/비번 : trainer3/computer
- 리눅스 ls 에서 보여지는 항목리스트에서.. -rw-rw-r-- 처럼 앞부분에 -가 붙으면 파일, drwxr-xr-x 처럼 d가 붙으면 디렉토리

vi 정상종료 하면.. main.c.swp 스와핑 파일 (vi에서 커서감시) 사라짐.

 

'C언어 업무보고' 카테고리의 다른 글

0304 업무일지 전처리,컴파일  (0) 2014.03.04
0303 리눅스,명령어,절대경로,상대경로  (0) 2014.03.03
0227 리눅스 명령어  (0) 2014.02.27
0226  (0) 2014.02.26
0225 업무보고 보수법  (0) 2014.02.25
Posted by C언어 보이
|

자동차 트랙도는 시간 : 20초


리눅스 명령어 :
- ls -all : 모든 항목 표시
- clear : 화면 클리어
- mnt/hfgs/One : One 이라는 폴더로 위치이동
- mkdir name : name이라는 이름의 폴더 생성

'C언어 업무보고' 카테고리의 다른 글

0304 업무일지 전처리,컴파일  (0) 2014.03.04
0303 리눅스,명령어,절대경로,상대경로  (0) 2014.03.03
0228 리눅스,명령어,vi  (0) 2014.02.28
0226  (0) 2014.02.26
0225 업무보고 보수법  (0) 2014.02.25
Posted by C언어 보이
|

윈도우키+브레이크키 ->시스템 등록정보 단축키

  "     +e-> 폴더열림

  "     +r-> 실행 (커멘드창 열 때 등)


이진숫자의 표시공간 bit에 대한 설명 + 부호방식


컴퓨터는 기본구조상 뺄셈은 없고 덧셈으로 모두 처리. 대신..

덧셈회로에 2의 보수 회로가 들어있음. 즉, 2의 보수를 취하여 덧셈기에 입력.

수의 범위 (표현하는 대상에 따라 바이트를 잘 선택하기).


1. Magnitude 방식

단점1)

1000 0000 -0

0000 0000  +0


1000 0001 -1

0000 0001 +1

1000 0010 -2


1000 0001 -1

0000 0010 +2

1000 0011 -3


단점2)

1000 0001  +1

0000 0000  -1

덧셈에 대한 문제 : 10000 0010


2. 2의 보수법 (2's complete) : 컴퓨터가 채택한 방식

128 -128로 취급

255는 -1로 취급

(255를 -1로 바꿔주는 회로가 내부에 있음)


단점보완1)

0을 표현하는 비트구성이 하나만 있으면 됌.


단점보완2)

1111 1000 - 

0000 01111 +1

1 0000 0000 0

(넘쳐나온 맨 처음 1은 무시)


1111 1110 -2

0000 0010 +2

1 0000 0000 0


1111 1011 -3

0000 0010 +2

1111 1111 -1



보수(complete)/보수법

192에 대한 9의 보수 807 -> 999

671..328 -> 999


192 10의 보수 918 ->1000 (0으로 만드는 게 10의 보수)

671...439->1000


0   0000 0000 0 

127 0111 1111 127

128 1000 0000 -128

255 1111 1111 -1 


-128~127 : 256



궁금증)

- 컴퓨터(버스)에서 '값'의 전달 및 입력방식 (전기신호적으로)

- 1 음, 0 양으로 한 이유 : 전기절약?

- 덧셈만 있는 이유? 

'C언어 업무보고' 카테고리의 다른 글

0304 업무일지 전처리,컴파일  (0) 2014.03.04
0303 리눅스,명령어,절대경로,상대경로  (0) 2014.03.03
0228 리눅스,명령어,vi  (0) 2014.02.28
0227 리눅스 명령어  (0) 2014.02.27
0226  (0) 2014.02.26
Posted by C언어 보이
|