C언어 키워드

프로그래밍 2011. 11. 2. 20:17
오늘 여러 키워드에 대해 검색해봤다

먼저

extern.. 요놈은 걍 외부에서도 사용가능하게 지정하는 변수정도로만 알고 있었다.
그런데 extern "C"를 이용하면 컴파일러가 해주던 네임 맹글링(같은 이름의 함수와 변수를 구분가능하게 해주는 작업) 을 "안해주도록" 하여 일반 C함수이름으로 선언되게 하는거라고 한다.
한마디로 C++소스 내에서 exturn "C"로 덮혀있으면 C에서도 사용이 가능하게 되는것과 C++에서 C의 문법을 쓰게 해줄수 잇는것 같다.

그다음

volatile 이놈도 걍 컴파일러 최적화 안하기...정도로만 알고 있었는데 다음과 같은때에 쓴다고한다

a = 1;
a = 2; 
a = 3;
a = 4;
a = 5;

같은식으로 되어있으면 컴파일러는 a = 5;만 수행하도록 할것이다(그것이 제일 효율적이니까) 그러나 만약 a대신에 값이 들어가는 것마다 다른것이 일어나는... 예를들면 인터럽트같은걸 사용할때는 값마다 수행하는게 다르고 1,2,3,4,5 처럼 각각 들어가는 값이 다르지만 다 수행되야한다면 나머지를 지울수 없게 될것이고 따라서 컴파일러 최적화를 수행못하게 하기 위해 volatile을 써야하게 된다는 것이다. 

그리고 마지막으로 Null Pointer

널포인터, 걍 값없는거 아냐? 정도로만 생각했던 나에게 코웃음을 치며 제대로 모르는구나! 빨리 검색해봐! 라는 말에 검색하게 되었다.
#define NULL 0 으로 선언되어있다고 한다.(시스템마다 조금씩 틀릴것 같지만... 일단 내가본글에선 프로그래머가 NULL의 자세한 값을 알 필요가 없다는듯 하다.)
이 널포인터는 다른 포인터와 달리 0이란 값이 들어있고 "할당되지 않은 상태"라는 듯하다.
Gtk를 알려면 포인터를 제대로 알아야한다는 말을 듣고 포인터관련 자료를 찾고 정리하는 시간을 가져봐야겠다. 

'프로그래밍' 카테고리의 다른 글

delete 와 new  (0) 2011.11.03
C++ 생성자와 소멸자  (0) 2011.11.03
virtual class  (0) 2011.11.03
C++ 상속  (0) 2011.11.03
프리미티브 타입  (0) 2011.11.03

설정

트랙백

댓글

C++로 바인딩된 Gtk언어 gtkmm.
C++공부삼아 해보기로 결심했다.
Class, Public, Protected, Private, Vitual... 객체지향의 개념이 추가된 C...라는 느낌이기보단 C랑 많이 다르다는 느낌이 들었다.
Virtual이란 키워드... 가상함수? 자바의 abstract 과 비슷한 키워드인듯 하다.

Anjuta IDE라는 gtk개발툴. 몇개월전만 해도 별로였던거 같은데 제법 쓸만한 툴이 되었다.
glade랑 통합되어서 UI는 비주얼스튜디오의 도구상자처럼 Label이나 Button을 끌어다 디자인을 할 수 있다.
그다음 소스코드에서 불러와서 사용하면 끗!

제법 쓸만한 툴이 생긴거 같아서 기쁘다.
열심히 개발해야징 히힛.

'프로그래밍 > Gtk+/binding gtk' 카테고리의 다른 글

본격 Gtk에서 Cairo 사용하기  (0) 2011.11.15
gtkmm 예제 프로그램  (0) 2011.11.03
gtkbuilder의 사용  (0) 2011.06.09

설정

트랙백

댓글