본문 바로가기

공부/C언어

(36)
32. 일반, continue, break 비교 #include void main(void) { printf("-------일반------------------------\r\n"); for (int i = 0; i < 5; i++) { if (i == 0) { printf("check1-%d\r\n", i); } printf("check2-%d\r\n", i); } printf("-------continue------------------------\r\n"); for (int i = 0; i < 5; i++) { if (i == 0) { printf("check1-%d\r\n",i); continue; } printf("check2-%d\r\n",i); } printf("-------break------------------------\r\n");..
31. 배열을 서브에서 서브로 전달하기 #include void sub2(char *b) { printf("sub2 -> %s\r\n", b); } void sub1(char *a) { printf("sub1 -> %s\r\n", a); sub2(a); } void main(void) { char test[] = "Test"; sub1(test); }
30. 조건부 컴파일 #include # define DEBUG void main(void) { #ifdef DEBUG printf("Debuging\r\n"); #else printf("else\n"); #endif // DEBUG printf("testing\r\n"); } #include # define DEBUG1 void main(void) { #ifdef DEBUG printf("Debuging\r\n"); #else printf("else\n"); #endif // DEBUG printf("testing\r\n"); }
29. union 메모리 분할 하기 union 안에 sturct 를 넣어서 공용체의 메모리를 비트로 분할 하는 방법입니다. union 안에 있는 변수는 모두 union안에 공용으로 메모리가 할당 됩니다. 그걸 struct를 이용하여 비트 단위로 변수를 넣을수 있습니다. #include union Test_H { unsigned char value; struct { unsigned char MODE0:1; unsigned char MODE1:3; unsigned char MODE2:4; }S_Test_H; }; enum mode_num { mode0_1=0, mode0_2, mode0_3, mode0_4 }; #include "head_t.h" void main(void) { union Test_H iTest_H; iTest_H.S_Test..
Visual studio 콘솔 창 유지 하기 코딩 후 컨트롤 + F5를 누르면 콘솔창으로 결과를 띄웁니다. 하지만 바로 종료 하는데 이때 콘솔창 유지 하기 위해서는 While문을 넣거나 아니면 속성 들어가서 시스템 -> 하위시스템에 콘솔로 맞춰주시면 됩니다.
28. CRC-16 예제 소스 #include unsigned int crc16(char* msg,unsigned int len) { int crc_val = (*msg) ^ 0xffff; char HI_crc = 0; char LO_crc = 0; int i, j = 0; for (i = 0; i >1) ^ 0xA001; //printf("P1:%x\n", crc_val); } else { cr..
27. 구조체 와 함수 Test_head.h #include typedef struct { int a; int b; }str_val; main.c #include "Test_head.h" void test1(str_val str_val1){ int test1_v1 = str_val1.a; printf("str_val = %d \r\n" , test1_v1); } void main(void){ str_val str_val2; str_val2.a = 10; test1(str_val2); }
26. static 구조체 static 안한 상태의 구조체 -구조체 주소를 찾아가면 0x36f848 을 보면 10 값을 가지고 있다가 함수에 빠져나가면 값이 사라지는 것을 볼 수 있다. 그러나 static 선언을 하면 .... 0xb8a188 주소에서 10(0xa)값을 가지고 있다가 함수를 나와도 값을 그대로 가지고 있는 것을 볼수 잇다. head.h #include typedef struct { int a1; int b1; }test_str1; void sub1(void); void sub2(void); void sub3(void); main.c #include "head.h" void main(void) { sub1(); sub3(); sub2(); } void sub1(void) { static test_str1 test_s..