RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'2008/05'에 해당되는 글 3

◎ 예약어 enum

* 열거자라고 불리는 집합의 원소들(식별자)을 선언 할수 있게 한다.
* 이 원소들의 유한 집합에 이름을 부여할 수 있게 한다.


enum day {sun,mon,tue,wed,thu,fri,sat};
이 선언은 사용자 정의 형 enum day를 생성한다. 예약어 enum다음에 오는 day가 태그 이름이다.  

열거자 = 식별자 : sun, mon ... sat등이며 int 형상수.

첫번째 원소는 0을 갖고 열거 순서에 따라 순차적인 정수 값을 갖는다.
     ⇒ enum day {sun=0, mon=1, tue=2, wed=3, thu=4, fri=5, sat=6};

enum day d1,d2;
d1,d2를 enum day형으로 선언한 것. 이 변수들은 집합내의 원소들만 값으로 가질수 있다.
d1 = fri; d1은 5로 저장되있다. int형으로 값을 찍으면 5가 나온다.


※ enum자체는 자료형이 아니다. enum day가 자료형이다. 열거자는 초기화 될 수 있다. 열거자가 선언된 후 바로 변수를 선언할 수 있다.


ex1) enum suit {clubs=1, diamonds, hearts, spades} a, b, c;

clubs는 1로 초기화되있다. a, b, c는 같이 선언되었다.
clubs가 1로 초기화 되었기 때문에 diamonds=2, hearts=3, spades=4의 값을 갖는다.
enum suit {clubs=1, diamonds, hearts, spades} a, b, c;
         └> 형지정                                               └> 이 자료형의 변수

ex2) enum fruit{apple=7, peat, orange=3, lemon} fri;
apple가 7로 초기화 되어서 peat는 8의 값을 갖는다. orange가 3의 값이여서 lemon은 4 의 값을 갖는다.

ex3) enum veg {beet=17, corn=17}; vege1, vege2; 
동일한 값이 여러 식별자에게 허용될 수 있지만, 식별자는 중복되면 안되고 유일해야함.

ex4) enum {fir, pine} tree;
테그 이름이 반드시 필요한 것은 아니다. 테그 이름이 없으므로 변수 tree만이 선언되었을 뿐
 enum {fir, pine}형으로 다른 변수를 선언할 수 없다.


※ 일반적으로, 열거자는 프로그램-지정 상수로 취급, 프로그램의 명확성을 위해 사용. 만일 필요하다면, 열거자의 기본 값은 캐스트를 사용해 얻을 수도 있다. 한 함수내의 변수와 열거자는 서로 다른 유일한 식별자를 가져야 한다.


에제 :

Class Student

{

public:

enum {

Kim = 1,

Jung = 2,

Lee = 3

};

void Get(int student);

};


enum내 항목을 참조하려면

Student s;

s.Get(Student::Kim);

s.Get(Student::Jung);

s.Get(Student::Lee);

2008/05/17 02:38 2008/05/17 02:38
이 글에는 트랙백을 보낼 수 없습니다

5로 끝나는 두 자리 숫자의 2승을 순식간에 해치우는 방법!



5로 끝나는 두 자리 숫자에 한정되지만,

2승하는 방법은 정말 간단하다.



십자리의 숫자와 이에 1을 더한 수를 곱하고,

25를 뒤에 그냥 붙이면 된다.



이를 테면 35의 2승을 생각해 보자.



 35^2 = (3×(3+1))  & 25

        =  3×4 & 25


        = 1225

우왕ㅋ굳



 

2008/05/15 18:23 2008/05/15 18:23
이 글에는 트랙백을 보낼 수 없습니다

포인터가 포함된 구조체를 동적할당했다면 거기에 들어있는 포인터는 heap에 잡히는 거지만 일반적으로 함수의 블럭안에서 선언한 포인터라면, 즉 위의 경우에는 그 구조체를 가르키는 포인터, stack에 잡히는 거고.

static변수는 프로그램 종료까지 메모리를 잡고 있어서 별도의 data영역(code, data할때 그 data segment)이란 곳에 들어가고.

register는 사실 컴파일러가 알아서 최적화하므로 일반 인간이 신경쓸 필요는 없고 register붙여주면 여유공간이 있으면 들어가지만 없으면 개무시 결국 스택에 잡힘. 어느 경우든 register붙이면 &로 주소를 얻을 수 없음.

 그렇지?

2008/05/12 22:17 2008/05/12 22:17
이 글에는 트랙백을 보낼 수 없습니다
웅쓰:웅자의 상상플러스
웅자의 상상플러스
전체 (379)
게임 (5)
영화 (2)
기타 (23)
맛집 (5)
영어 (2)
대수학 (3)
형태소 (5)
Hacking (9)
Linux (112)
HTML (48)
Application_developing (48)
Web_developing (102)
Window (11)
«   2008/05   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
  1. 2016/01 (1)
  2. 2015/12 (3)
  3. 2015/10 (3)
  4. 2015/03 (2)
  5. 2015/01 (4)