C언어_교환법칙, (2,3)차원 배열, 더블 포인터의 이해
·
[Programming] Language/C
- 교환 법칙 - #include // 이런 문법을 허용 한다만 알면 된다. 누가 이런식으로 코딩했을 시 알아 봐야 하기 때문에 알려준다. int main(void) { int A[5] = {1, 2, 3, 4, 5}; //1차원 배열 선언 후 초기화 printf("[%d]\n",A[2]); //그렇다면 배열에서의 교환법칙 이란? 배열에서의 교환법칙. 즉, 누가 이런식으로 코딩하면 맞긴 맞는 코딩. printf("[%d]\n",2[A]); return 0; } /* 교환법칙 A + B = B + A A * B = B * A */ - 2차원 배열 추가 설명 - #include int main(void) { int A[3][4] = { {}, {}, {} }; return 0; } /* A[1] + 2 란 ..
C언어_구조체 메모리 최적화(전처리어 pragma 사용법),구조체 활용, 공용체 사용법
·
[Programming] Language/C
- 구조체 메모리 최적화 - #include //데이터간 장치간 통신할때 사용하는 프로그래밍 해 볼 것 typedef struct _smart //최적화 전. 28바이트 { int a; char b; short c; int d; char e; short f; char g; int h; char i; char j; short k; }smart; typedef struct _smart1 //메모리 최적화 구조체. 24바이트 { int a; char b; short c; int d; char e; char g; short f; int h; char i; char j; short k; }smart1; #pragma pack(1) typedef struct _smart2 //pragma 테스트 최적화 전. { i..
C언어_구조체의 활용(배열 통째로 옮기기, 구조체 메모리 저장 형태)
·
[Programming] Language/C
- 배열 통째로 옮기기 - #include typedef struct _person //먼저 그 사람의 정보를 위한 구조체 선언. { char name[20]; char phoneNum[20]; int age; }person; int main(void) { person arr = {"한지수", "010-1717-0003", 19}; //struct person 타입의 구조체 배열 형태로 그 사람들의 정보 값을 초기화. person temp; person temp2; printf("%s %s %d\n", arr.name, arr.phoneNum, arr.age); temp = arr; //배열에다 배열 값은 못 집어넣는다. 상수 = 상수 기에 //허나, 이런식으로 그 배열값들을 다 집어 넣고 싶을때 구조체..
C언어_펌웨어_인터럽트 사용법
·
[Programming] Language/C
#define DDRD (*((volatile unsigned char*)0x2A)) //입력 쪽 #define PORTD (*((volatile unsigned char*)0x2B)) #define DDRA (*((volatile unsigned char*)0x21)) //출력 쪽 #define PORTA (*((volatile unsigned char*)0x22)) #define SREG (*((volatile unsigned char*)0x5F)) //상태 레지스터, 0000 0000 부분중 제일 끝 자리가 글로벌 #define EIMSK (*((volatile unsigned char*)0x3D)) //사용할 핀을 설정.(현재 int0 번 사용 중) #define EICRA (*((volatile..
C언어_펌웨어_주사위 인터럽트 사용.
·
[Programming] Language/C
#include #include #include "smart.h" void ito7seg_cal(unsigned int tmp); unsigned char bitcal(unsigned char c1, unsigned char c2, unsigned char c3, unsigned char c4, unsigned char c5, unsigned char c6, unsigned char c7); //unsigned char cRand; void __vector_1(void)__attribute__((signal,used,externally_visible));//int0의 벡터 번호 1 void __vector_1(void)// 처리할 루트를 넣어준다. 끼어드는 조건이 만족하면 실행된다. { //cRand =..
C언어_펌웨어_int0 count dn , int4 count up
·
[Programming] Language/C
-내 코드- #define DDRD (*((volatile unsigned char*)0x2A)) //입력쪽 (INT0) #define PIND (*((volatile unsigned char*)0x29)) //입력핀 #define DDRE (*((volatile unsigned char*)0x2D)) //입력쪽 (INT4) #define PINE (*((volatile unsigned char*)0x2C)) #define DDRC (*((volatile unsigned char*)0x27)) //7세그먼트 표현 #define PORTC (*((volatile unsigned char*)0x28)) //출력핀 #define SREG (*((volatile unsigned char*)0x5F)) //상태 ..