본문 바로가기
코스웨어/16년 스마트컨트롤러

20160308-송찬호-그 밖의 기초학습

by 알 수 없는 사용자 2016. 3. 10.
728x90
반응형

#include <stdio.h>

int main ()

{
    int iCnt;   

for (iCnt=1;iCnt<=9;iCnt=iCnt+1).  

{

         printf("%d*%d=%d \n",3,iCnt,3*iCnt);

     }

     return 0;

}

3단 소스

타입은 int이며 메모리는 4바이트공간 이름은 iCnt이다.

fot 지연용 반복문 ,iCnt는 첫번째를1 로 지정하고 이고 9보다 작고 1씩 더하는걸 반복한다.해준다

나온값

E:\L송찬호V\C언어\20160308>main
3*1=3
3*2=6
3*3=9
3*4=12
3*5=15
3*6=18
3*7=21
3*8=24
3*9=27

#include <stdio.h>

int main()
{

 volatile int iCnt;// //int iCnt

 for(;;)//while(1)//무한반복
 {
  for(iCnt=0;1000000>iCnt;iCnt=iCnt+1)//cpu에서 같은일 을 반복하는 것보다 결과값을 바로 넣어 간다. 
  {}
  printf("test\n");
 }
 return 0;
}

int iCnt 로 했을때 메모리에서 저장한 값을 cpu에서 받아  +1을 하고 메모리에 +1한 값이 저장 test로 출력 또 메모리에서 받아 +1하는 과정을

무한 반복 하는 과정이다. 

volatile

볼로타입 휘발성  

volatile은 이런 최적화를 하지않게 선언해서, CPU가 "매 값마다" 참/거짓을 판별, 연산하고 

메모리에 저장하고 가져오는 과정을 반복하게 한다. test 출력 속도가 빨라진다.


#include <stdio.h>

union smart  //
{
 int A;
 short B;
 int C;
 char D;

};

int main()
{
 union smart obj;
 obj.A=0x12345678;
 printf("size : %d\n",sizeof(union smart));
 printf("%x\n",obj.A);
 printf("%x\n",obj.B);
 printf("%x\n",obj.C);
 printf("%x\n",obj.D);
 return 0;
}

유니언

변용체, 유니언은 메모리에 들어간 수 만큼 사이즈가 커진다.

이 타입은 메모리 사이즈가 타입의 크기가 아닌 타입이 들어간순 으로 크기를 나타낸다.

나온값
E:\L송찬호V\C언어\20160308>main3
size : 4
12345678
5678
12345678
78

E:\L송찬호V\C언어\20160308>

A 의 12345678 컴퓨터는 뒤 집어서 계산해서한다. 나온다.

1바이트는 두게씩나온다.

 int는 4바이트므로 8개 인 12345678이나오고 short는 5678 뒤에 내게 이고 char은 1바이트므로  뒤에 78 두개만 나온다 

728x90