본문 바로가기
코스웨어/12년 내장형하드웨어

형동등성

by 알 수 없는 사용자 2012. 8. 22.
728x90
반응형

<형동등성>


C는 short 지만 int형 B를 지정해도 값이 출력된다 물론 나머지 int의 바이트는 짤려나가고 출력된다

비주율 6에선 실행되지만 차후 버젼에는 이런값은 에러로 뜬다.


int D=4.9 같은거도 D가 int지정이니 소수점뒤에9는 사라지고 앞에 4만 출력된다.


중요한건 cpu는 이렇게 형이 동등한지 아닌지를 먼저 보고 계산하는 구조이다.


그것을 cpu는 심볼테이블을 작성해서


그값을 대입해 맞으면 계산하고 틀리면 오류가 나게되는것이다.



<심볼테이블>

int A;

A=100;


이라 선언하면 

cpu에선  심볼테이블을 만들어

name에 A ,  type에  int,  adress에 메모리의지정된임의에 주소값을 작성한다


그리고 A= 100 을 넣을떈 먼저 A라는 값을 등록된 심볼테이블에서 찾는다음에

찾은 메모리위치에 100을 넣는 순서로 동작된다.


<그러므로 A의 타입과 선언값이 일치하지않으면 컴퓨터는 형을 자동으로 맞춰주거나 에러를 표시한다.>





    <scanf>



<scanf 사용예>

scanf 로 각각 입력타입을 바꿔서 소스를 짜보았다.

출력역시 각 타입에 맞게 형식지정자를 맞춰준다.




<scanf() 와 printf()함수의 사용되는 형식지정자>


위에 형식지정자중 %i는 10진수만 지원되고, 마지막 %p는 8자리 양수대문자로 출력된다 이는 (%08X)와 같은역활




<형식지정자 %s의 쓰임>

 

형식지정자%s는 문자열 형식이다. 워드에 문자배열을 30으로 제한해주고 

정작 입력형식에 %5s 로 5문자만 입력가능하게 선언하고

출력하면 123456을 입력해도 12345만 출력된다.

728x90