본문 바로가기

[AVR_C] Volatile 변수에 대해서 AVR C 에서는 Volatile변수를 주로 사용한다. 이는 컴파일할때 최적화를 막아주기 위함이라고 하는데, 솔직히 이해안되서 그냥 모든 변수를 volatile이라고 선언해 주다가.... 이제 좀 알겠다 싶어 적는다. Volatile은 위에서 말한데로 컴파일하는데 최적화를 막아주는 방법이다. 컴파일할때 최적화를 시켜주는 경우가 있는데 한 변수가 바뀌는 코드가 없이 한 코드안에서 계속 사용되면, 이 변수를 얻으러 메인메모리까지 가기가 귀찮아서 로컬레지스트에 저장해놓는다. 예를 들어 int i = 100; 해놓고 아래에서 setValue(i); 뭐 이런식으로 만 쭈욱 써놨지, i = i+20; 처럼 변수를 변형하는 꼴이 없다면 그냥 가까운 곳에 복사해놓는다는 것이다. 하지만 문제가 되는게, 특히 임베디드 시.. 더보기
[핀란드잡지식] HOAS와 핀란드 (호아스) 이번에는 HOAS에 대해서 얘기해볼까 한다. HOAS는 헬싱키내에서 방을 구할 수 있는 꽤나 싼 편인(?) 수단이다. 뭐 HOAS를 이용하시는 분이 있다면 햇갈리지 않도록 하기 위해 적으나, 나는 정말 HOAS의 비열한 사업수단에 대해서 꽤나 부정적인 생각이기 때문에... 중간중간 부정적 어조가 들어가는 것은 관대하게 봐주길 바란다. 그만큼 조심하고 이런 사업에 조심하길 바란다는 것이니 잘 보고 주의할것... HOAS : http://www.hoas.fi/ HOAS 홈페이지에 접속해서 오른쪽 위에 언어를 ENG(English)로 바꾼 다음 정보를 얻도록 한다. 방을 얻는 방법은 How to apply에 나와있지만 간략하게 설명하면 다음과 같다. 1. 인터넷으로 신청서를 작성, 보낸다. 2. HOAS에서 .. 더보기
[언어잡지식] 오버로딩과 폴리몰피즘의 차이 (Overloading and Polymorphsim) 둘다 OOP의 개념에서 나오는 것인데. 오버로딩과 폴리몰피즘의 차이는 뭘까. 오버로딩은 함수의 "재정의" 이다. 그 재정의 된 함수 사이에는 구별되는 특징이 있다. 리턴값이 다르다던지, 인풋갯수가 다르다던지, 인풋타입이 다르다던지... 비록 함수의 이름은 같더라도, 구별되는 특징에 따라 다른 함수가 적용되는 것이다. 예를 들어. public int add (int a , int b) public double add (double a, double b) 정수를 더하나 실수를 더하나 우리는 같은 더하기 이므로, 직관적인 add라는 작업단위로 읽힐 수 있도록, 이렇게 해주는 것이다. OOP의 강화라고 볼 수 있지... 폴리몰피즘 다형성? 상속이란 것으로 나타나는 건데 조금 복잡하지만 이해하면 왜 이렇게 쓰는지.. 더보기