==========================================================================================
S.C.
=======================================================================================
=함수
#include <stdio.h>
int Add(int iNum1, int iNum2) { return iNum1+iNum2; // CPU 에서 + => 36 }
void ShowAddResult(int iNum) { printf("덧셈결과 출력: [%d] \n", iNum); return; }
int ReadNum(void) { int iNum; scanf("%d", &iNum); return iNum; }
void HowToUseThisProg(void) { printf("두 개의 정수를 입력하시면 덧셈결과가 출력됩니다. \n"); printf("두 개의 정수를 입력하세요 \n"); return; }
int main(void) { int iResult, iNum1, iNum2; // main()의 지역변수
HowToUseThisProg(); iNum1 = ReadNum(); // iNum1 = 12; (ReadNum()의 iNum사라지고 CPU Register 12 복사 => 대입) iNum2 = ReadNum(); // iNum2 = 24; iResult = Add(iNum1, iNum2); // iResult =36; ShowAddResult(iResult); return 0; }
|

=
#include <stdio.h>
int main() { int iNum1; //피제수 int iNum2; //제수 printf("피제수를 입력하시오.\n"); scanf("%d",&iNum1);
printf("제수를 입력하시오.\n"); scanf("%d",&iNum2);
printf("몫은 [%d]입니다 \n",iNum1/iNum2); printf("나머지는 [%d]입니다 \n",iNum1%iNum2);
return 0; } |

=
#include <stdio.h>
int main() { int iNum1; //피제수 int iNum2; //제수 printf("피제수를 입력하시오.\n"); scanf("%d",&iNum1);
printf("제수를 입력하시오.\n"); scanf("%d",&iNum2);
if(0 == iNum2) // '==' -> '=' 으로 실수 할 경우 컴파일 에러 발생하도록 (상수 == 변수) { printf("0으로 나눌 수 없습니다. \n"); return 100; // 함수의 중단 } printf("몫은 [%d]입니다 \n",iNum1/iNum2); printf("나머지는 [%d]입니다 \n",iNum1%iNum2);
return 0; } |

=지역변수(Local Variable)
#include <stdio.h>
int main() { int iNum=100; printf("iNum : [%d]\n",iNum); {
int iNum=200; printf("iNum : [%d]\n",iNum);
} printf("iNum : [%d]\n",iNum);
return 0; } |

-변수의 생명주기

#include <stdio.h>
int main() { int iNum=100;
++iNum;
printf("iNum : [%d]\n",iNum); {
int iNum=200; printf("iNum : [%d]\n",iNum); ++iNum;
} ++iNum;
printf("iNum : [%d]\n",iNum);
return 0; } |

#include <stdio.h>
int main() { int iNum=1; if(1==iNum) { int iNum = 7; // main 함수의 iNum 가리워진다 iNum+=10; printf("if문 내 지역변수 iNum : [%d] \n",iNum); } printf("main함수 내 지역변수 iNum : [%d] \n", iNum); return 0; } |

#include <stdio.h>
int main() { int iNum=1; if(1==iNum) { // int iNum = 7; iNum+=10; printf("if문 내 지역변수 iNum : [%d] \n",iNum); } printf("main함수 내 지역변수 iNum : [%d] \n", iNum); return 0; } |

-매개변수 => 지역변수 => 자동변수(automatic variable)

=전역변수 (Gloval Variable)
#include <stdio.h>
void Add(int iVal); int iNum; // 전역변수 (Gloval Variable) 모든 전역변수 영역 bit 0으로 => 변수 할당 => 0
int main(void) { printf("iNum : [%d] \n",iNum); Add(3); printf("iNum : [%d] \n",iNum); ++iNum; printf("iNum : [%d] \n",iNum); return 0; }
void Add(int iVal) { iNum += iVal; } |

=
#include <stdio.h>
int B0; int B1; int B2; int B3; int B4; int B5; int B6; int B7; int B8; int B9;
int main() { int A1; int A2; int A3; int A4; int A5;
printf("A1 : [%08x]\n",&A1); printf("A2 : [%08x]\n",&A2); printf("A3 : [%08x]\n",&A3); printf("A4 : [%08x]\n",&A4); printf("A5 : [%08x]\n",&A5);
printf("B0 : [%08x]\n",&B0); printf("B1 : [%08x]\n",&B1); printf("B2 : [%08x]\n",&B2); printf("B3 : [%08x]\n",&B3); printf("B4 : [%08x]\n",&B4); printf("B5 : [%08x]\n",&B5); printf("B6 : [%08x]\n",&B6); printf("B7 : [%08x]\n",&B7); printf("B8 : [%08x]\n",&B8); printf("B9 : [%08x]\n",&B9);
printf("main : [%08x]\n",main); printf("printf : [%08x]\n",printf); printf("scanf : [%08x]\n",scanf);
return 0; } |

=visual studio

=>

전역변수 값 셋팅

=> 전역변수 여러개 값 셋팅




==========================================================================================
디지털회로
=======================================================================================
https://cms.koreatech.ac.kr/user/yjjang/digi09/ch04.pdf
=논리게이트 / 논리레벨
-TTL과 CMOS 논리레벨 정의 영역
74LS - TTL((트랜지스터 트랜지스터 로직 컨트롤) : 트랜지스터의 증폭/스위칭 기능중 스위칭 기능 사용)
74HC - CMOS

=기본 논리게이트 동작원리/진리표/게이트 기호
-NOT GATE (7404 / 7414)

-신포 증폭 비슷 (먼거리에서도 원신호에 가깝게)
=> NOT GATE 2개로 대체해서 많이 사용




-AND



-OR


-NAND


-NOR


-XOR (덧셈/AND - 올림수 처리)


-=BCD-7 세그먼트 디코더
--가지 타입
-OMMON-CATHODE (+) 극 COMMON
-OMMON-ANODE (-) 극 COMMON
=인코더
=플립플롭
=숫자 카운트(버튼입력:카운트/리셋)
=시계만들기