프로그램97 함수 포인터 배열 예제 #include void test1(void){ printf("TEST\n");}void test2(void){ printf("TEST2\n");}int main(void){ test1(); test2(); void (*test_pointer[2])(void); test_pointer[0] = test1; test_pointer[1] = test2; test_pointer[0](); test_pointer[1](); return 0;} 2015. 2. 13. B-spline 2014. 11. 7. Efficient C coding Efficient C-coding 에서는 다음과 같은 목표들을 이루기 위해 코딩을 수행한다. - 낮은 연산시간- 적은 코드 사이즈- 적은 램 차지용량- 적은 레지스터 사용량 컴파일 시간보다는, 컴파일된 코드의 실행시간이 중요하다.gcc의 최적화 옵션을 사용하면, 실행시간이 줄어들 수 있지만,사용자가 원하지 않은 결과를 낼 가능성이 존재하기 때문에(매뉴얼의 방법에 맞춰서 컴파일한다면 그런 가능성이 줄어든다.)가능하다면, 최대한 사용자가 컴파일러에 친숙하게 코딩 하는 것이 중요하다. 0. 변수선언룩업테이블 (메모리 H, 연산시간 L) 1. 연산관련2. 분기관련2.1 루프2.2 if-else / switch2.3 함수 call 1. 연산 관련 - 부동 소수점 연산을 피하자(Avoid float, double).. 2014. 9. 30. 부동소수점 변수의 정확도 부동소수점 연산은 오버플로우 에러의 가능성이 낮다는 장점이 있다. 부동 소수점 변수의 정확도를 알기 위해서 간단한 테스트를 해보았다. 32비트의 float형 변수와64비트의 double형 변수의 정확도를 알아보기 위해서값을 입력한 뒤에 어느 숫자부터 부정확해지는지 알아보도록 하였다. 테스트 코드는 다음과 같다. #include int main (void) { float f = 1.123456789123456789; double d = 1.123456789123456789; printf("Original:\t1.123456789123456789\n"); printf("float:\t\t%2.20f\ndouble:\t\t%20.20f\n",f,d); return 0;} 위 파일을 실행시켜보았을 때에 다음과 .. 2014. 9. 18. 임베디드 통신 http://mintnlatte.tistory.com/category/T%20heory/Comn%20Basics 2014. 9. 17. 장치 대역폭 목록 직렬 RS-232C 보통 9.6 kbit/초 960 B/초 직렬 8250 UART 최대 19.2 kbit/초 1.92 kB/초 USB 저속 1.536 Mbit/초 192 kB/초 USB 완전 속도 12.0 Mbit/초 1.5 MB/초 USB 고속 480 Mbit/초 60 MB/초 I²C 표준 100kbit/초 12.5 kB/초 I²C 저속 10kbit/초 1.25 kB/초 I²C 패스트 400kbit/초 50 kB/초 I²C 고속 3.4Mbit/초 420kB/초 [2] 2014. 9. 5. 이전 1 ··· 13 14 15 16 17 다음