C Programming Language/C++

C++ ํƒ€์ž…๊ณผ ์ˆ˜์‹์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๊ธฐ (2)

567Rabbit 2024. 8. 25. 14:16
 

C++ ํƒ€์ž…๊ณผ ์ˆ˜์‹์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๊ธฐ (1)

cout - printf์™€ ๋น„์Šทํ•˜๋‹ค.- ํ‘œ์ค€ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ๊ฐ์ฒด๋กœ, ์ฝ˜์†”์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋จ- cout์€ ์ŠคํŠธ๋ฆผ ์—ฐ์‚ฐ์ž   cin- scanf์™€ ๋น„์Šทํ•˜๋‹ค.- ํ‘œ์ค€ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ ๊ฐ์ฒด๋กœ, ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ

codebunny99.tistory.com

 

 

๋ฐฐ์—ด์ด๋ž€?

๋™์ผ ํƒ€์ž…์˜ ๋ณ€์ˆ˜์˜ ์ง‘ํ•ฉ

 

์ •์˜ ๋ฐฉ๋ฒ•

type ๋ณ€์ˆ˜๋ช…[n]

 

ex) int values[5] = {0, 10, 20, 30, 40};

 

 

 

๋ฐฐ์—ด์˜ ์›์†Œ ๊ฐ’์€ ๋ฐฐ์—ด์„ ์ •์˜ํ•  ๋•Œ ์ดˆ๊ธฐํ™” ๋  ์ˆ˜ ์žˆ๋‹ค

 

(1) ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” ์ดˆ๊ธฐํ™” ๋ชฉ๋ก์˜ ํฌ๊ธฐ๋กœ ๊ฒฐ์ •๋œ๋‹ค

- ์ฆ‰ int intArray2[] = {1,2,3,4}; ๋Š” int intArray2[4] = {1,2,3,4}; ์™€ ๋™์ผํ•˜๋‹ค

 

(2) ์ง€์ •๋˜์ง€ ์•Š์€ ์›์†Œ์˜ ์ดˆ๊ธฐ๊ฐ’์€ 0์œผ๋กœ ๊ฒฐ์ •๋œ๋‹ค

- ์ฆ‰ intArray3[3] = {1,2}; ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด int intArray3[3] = {1, 2, 0} ์œผ๋กœ ๋น„์–ด์žˆ๋Š” ์›์†Œ๋Š” 0์œผ๋กœ ์ดˆ๊ธฐ๊ฐ’์ด ๊ฒฐ์ •๋œ๋‹ค.

 

(3) ๋ฌธ์ž์˜ ๋ฐฐ์—ด์€ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์„ ์ด์šฉํ•˜์—ฌ ์ดˆ๊ธฐํ™”๋œ๋‹ค.

- char strArray1[] = "a string" ; ๋Š” char strArray1[] = {'a', ' ', 's', 't', 'r', 'i', 'g', 0}; ์™€ ๋™์ผํ•˜๋‹ค

 

(4) ํด๋ž˜์Šค ๊ฐ์ฒด์˜ ๋ฐฐ์—ด๋„ ๊ฐ€๋Šฅํ•˜๋‹ค

- string names[5] = {string("Kim"), string("Park")} ; ๋Š”  string names[5] = {'Kim', 'Park', 0, 0, 0} ;

- ์ด๋ฅผ ์‹คํ–‰์‹œํ‚ค๋ฉด names ๋ฐฐ์—ด์€ {"Kim", "Park", "", "", ""}๋กœ ์ดˆ๊ธฐํ™”๋œ๋‹ค

 

 

 

 

2์ฐจ์› ๋ฐฐ์—ด

- ๋‹ค๋ฅธ ๋ฐฐ์—ด์„ ์›์†Œ๋กœ ๊ฐ€์ง„๋‹ค

 

์ •์˜๋ฐฉ๋ฒ•

type ๋ณ€์ˆ˜๋ช…[ํ–‰][์—ด]

 

ex) int values[3][5];

 

 

- ์—ด์˜ ๊ฐœ์ˆ˜๋งŒํผ ์ ํ”„ํ•ด์•ผ ํ•˜๋ฏ€๋กœ 5๋Š” ์˜ˆ์‹œ์ด๋ฉฐ, ์—ด์˜ ๊ฐœ์ˆ˜๋งŒํผ ๋„ฃ์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

 

 

 

 

๋™์  1์ฐจ์› ๋ฐฐ์—ด

 

- new์™€ delete๋ฅผ ์ด์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘์— ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋™์  ๋ฐฐ์—ด์„ ์ •์˜

- heap(ํž™) ๋ฉ”๋ชจ๋ฆฌ์— ๊ณต๊ฐ„ ๋ถ€์—ฌ

 

#include <iostream>
using namespace std ;
int main() {
    cout << "1์ฐจ์› ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์ž…๋ ฅํ•˜์‹œ์˜ค." << endl;
    int intSize;
    cin >> intSize;
    // new๋กœ ์ž…๋ ฅ๋œ ํฌ๊ธฐ๋งŒํผ์˜ int๋ฅผ ํ• ๋‹น
    int* const intArray = new int[intSize];
    for (int i = 0 ; i < intSize ; i++)
    	cin >> intArray[i];
    delete[] intArray; //delete๋กœ ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ˜ํ™˜
}

 

 

 

 

 

ํฌ์ธํ„ฐ์˜ ๋™์  ๋ฐฐ์—ด

 

- stack ๋ฉ”๋ชจ๋ฆฌ์—์„œ heap ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํฌ์ธํ„ฐํ•œ๋‹ค

- heap ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ํฌ์ธํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, stack ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ๋ฐฐ์—ด์˜ ๊ฐ’์ด ์žˆ๋‹ค.

 

 

 

 

 

๋™์  2์ฐจ์› ๋ฐฐ์—ด

 

- stack ๋ฉ”๋ชจ๋ฆฌ์—์„œ heap ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํฌ์ธํ„ฐํ•œ๋‹ค

- heap ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ํฌ์ธํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, stack ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ๋ฐฐ์—ด์˜ ๊ฐ’( ex) intArrayA, intArrayB )์ด ์žˆ๋‹ค.

#include <iostream>
using namespace std ;
int main() {
    cout << "ํ–‰๋ ฌ์˜ ํฌ๊ธฐ๋ฅผ ์ž…๋ ฅํ•˜์‹œ์˜ค." << endl;
    int rowSize, columnSize;
    cin >> rowSize >> columnSize;
    
    cout << "ํ–‰๋ ฌA [" << rowSize << " X " << columnSize << "]์˜ ๊ฐ’์„ ์ž…๋ ฅํ•˜์‹œ์˜ค. \n";
    int ** const intArrayA =new int*[rowSize];
    for (int i = 0 ; i < rowSize ; i++){
        intArrayA[i] =new int[columnSize];
        for (int j = 0 ; j < columnSize ; j++) cin >> intArrayA[i][j];
    }
    cout << endl;       
    cout << "ํ–‰๋ ฌB [" << rowSize << " X " << columnSize << "]์˜ ๊ฐ’์„ ์ž…๋ ฅํ•˜์‹œ์˜ค. \n";
    int ** const intArrayB =new int*[rowSize];
    for (int i = 0 ; i < rowSize ; i++){
        intArrayB[i] =new int[columnSize];
        for (int j =  ; j < columnSize ; j++) cin >> intArrayB[i][j];
    }

	cout << endl << "ํ–‰๋ ฌA + B๋Š”" << endl;
    for (int i = 0 ; i < rowSize ; i++){
        for (int j = 0 ; j < columnSize ; j++) {
            const int a = intArrayA[i][j];
            const int b = intArrayB[i][j];
            cout << a << " + " << b << " = " << a+b << '\t' ;
        }
        cout << endl;
    }
    
    //intArrayA, intArrayB๋ฅผ deleteํ•ด ์ฃผ์–ด์•ผ ํ•จ
    for (int i = 0 ; i < rowSize ; i++) {
    	delete [] intArrayA[i];
        delete [] intArrayB[i];
    }
    
    delete [] intArrayA ;
    delete [] intArrayB ;
}

 

 

 

 

 

 

๋‚˜์—ดํ˜•(enum) = ์—ด๊ฑฐํ˜•

- ๋ช‡๊ฐ€์ง€ ํ•œ์ •๋œ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ํƒ€์ž…

- ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฐ’๋“ค์„ ๋‚˜์—ดํ•จ์œผ๋กœ์จ ์ •์˜

 

ex)

enum Grade { FRESH = 1, SOPHOMORE, JUNIOR, SENIOR };

 

  • FRESH = 1์€ ๋‚˜์—ดํ˜• ์ƒ์ˆ˜ FRESH์— ๊ฐ’ 1์„ ๋ช…์‹œ์ ์œผ๋กœ ํ• ๋‹นํ•œ๋‹ค.
  • ์ดํ›„์— ๋‚˜์˜ค๋Š” ๋‚˜์—ดํ˜• ์ƒ์ˆ˜๋“ค์€ ๋ณ„๋„๋กœ ๊ฐ’์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด, ๋ฐ”๋กœ ์ด์ „ ๊ฐ’๋ณด๋‹ค 1์”ฉ ์ฆ๊ฐ€ํ•œ ๊ฐ’์„ ์ž๋™์œผ๋กœ ๊ฐ€์ง€๊ฒŒ ๋จ๋”ฐ๋ผ์„œ, SOPHOMORE๋Š” 2, JUNIOR๋Š” 3, SENIOR๋Š” 4
  • ๋งŒ์•ฝ FRESH์— = 1์„ ์ง€์ •ํ•˜์ง€ ์•Š๊ณ  ๊ทธ๋ƒฅ FRESH๋ผ๊ณ ๋งŒ ํ–ˆ๋‹ค๋ฉด, C++์—์„œ ๋‚˜์—ดํ˜•์˜ ์ฒซ ๋ฒˆ์งธ ์ƒ์ˆ˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ 0์˜ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค. ๊ทธ ํ›„๋กœ ๋‚˜์˜ค๋Š” ์ƒ์ˆ˜๋“ค์€ ๊ทธ ์•ž์˜ ๊ฐ’์— 1์”ฉ ๋”ํ•ด์ ธ ํ• ๋‹น๋œ๋‹ค. ex) 0, 1, 2, 3

 

Grade curGrade = FRESH;

 

- ๋‚˜์—ดํ˜• ํƒ€์ž… ์ด๋ฆ„์€ int, float ๋“ฑ๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ ํƒ€์ž… ์ด๋ฆ„์œผ๋กœ์„œ ์‚ฌ์šฉ

- curGrade๋Š” ๋ณ„์นญ(๋ณ€์ˆ˜ ์ด๋ฆ„)์„ ๋ถ€์—ฌํ•œ ๊ฒƒ์ด๋‹ค.

 

 

 

 

๋‚˜์—ดํ˜•์˜ ํ˜•๋ณ€ํ™˜

 

- ๋‚˜์—ดํ˜• ํƒ€์ž…์˜ ๋ฆฌํ„ฐ๋Ÿด์€ ๋‚ด๋ถ€์ ์œผ๋กœ int ํƒ€์ž…์œผ๋กœ ์ฒ˜๋ฆฌํ•จ

 

(1) ๋‚˜์—ดํ˜• -> int ํƒ€์ž…์œผ๋กœ ๋ฌต์‹œ์ ์œผ๋กœ ํ˜•๋ณ€ํ™˜

 

(2) int๊ฐ’ -> ๋‚˜์—ดํ˜• ํƒ€์ž…์œผ๋กœ ๋ช…์‹œ์ ์œผ๋กœ ํ˜•๋ณ€ํ™˜

 

 

 

 

 

๋‚˜์—ดํ˜•์˜ ํ™œ์šฉ

 

- ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด

 

- ๊ฒฐํ•จ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด

 

 

 

 

 

 

๊ตฌ์กฐ์ฒด(struct)

 

- ๊ธฐ์กด ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋“ค์˜ ์กฐํ•ฉ์œผ๋กœ์„œ ์ƒˆ๋กœ์šด ํƒ€์ž…์„ ์ •์˜

 

C++์—์„œ์˜ ๊ตฌ์กฐ์ฒด(struct)๋Š” C์–ธ์–ด์—์„œ์˜ ๊ตฌ์กฐ์ฒด์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ, ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์ฐจ์ด์ ์ด ์žˆ๋‹ค.

์ด ์ฐจ์ด์ ๋“ค์€ C++์ด ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋กœ ๋ฐœ์ „ํ•˜๋ฉด์„œ ๊ตฌ์กฐ์ฒด์˜ ๊ธฐ๋Šฅ์ด ํ™•์žฅ๋œ ๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค.

 

 

 

1. ๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ„์˜ ๊ธฐ๋ณธ ์ ‘๊ทผ ์ œํ•œ์ž

  • C์–ธ์–ด: C์—์„œ ๊ตฌ์กฐ์ฒด์˜ ๋ฉค๋ฒ„๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ณต๊ฐœ(public)
  • C++: C++์—์„œ๋„ ๊ตฌ์กฐ์ฒด์˜ ๋ฉค๋ฒ„๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ณต๊ฐœ(public)  ๊ทธ๋Ÿฌ๋‚˜, C++์—์„œ๋Š” ํด๋ž˜์Šค์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ ‘๊ทผ ์ง€์ •์ž(public, private, protected)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

2. ๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค์˜ ์ฐจ์ด

  • C์–ธ์–ด: C์—์„œ๋Š” ๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค์˜ ๊ฐœ๋…์ด ์—†๋‹ค. ๊ตฌ์กฐ์ฒด๋Š” ๋‹จ์ˆœํžˆ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ฌถ๋Š” ๋ฐ ์‚ฌ์šฉ
  • C++: C++์—์„œ๋Š” ๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค์˜ ๊ธฐ๋Šฅ์ด ๊ฑฐ์˜ ๋™์ผํ•˜๋‹ค. ๋‘˜์˜ ์œ ์ผํ•œ ์ฐจ์ด์ ์€ ๊ธฐ๋ณธ ์ ‘๊ทผ ์ œํ•œ์ž์ž…๋‹ˆ๋‹ค.
    • ๊ตฌ์กฐ์ฒด์˜ ๋ฉค๋ฒ„๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ public
    • ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ private
struct MyStruct {
    int x;       // public by default
};

class MyClass {
    int x;       // private by default
};
 

 

 

3. ๋ฉค๋ฒ„ ํ•จ์ˆ˜์˜ ์ •์˜

  • C์–ธ์–ด: ๊ตฌ์กฐ์ฒด ๋‚ด๋ถ€์— ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์—†๋‹ค. ๊ตฌ์กฐ์ฒด๋Š” ๋ฐ์ดํ„ฐ๋งŒ์„ ํฌํ•จ
  • C++: ๊ตฌ์กฐ์ฒด ๋‚ด๋ถ€์— ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์‹ค์ƒ ํด๋ž˜์Šค์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์กฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค
struct MyStruct {
    int x;
    void print() {  // ๊ตฌ์กฐ์ฒด ๋‚ด์— ๋ฉค๋ฒ„ ํ•จ์ˆ˜ ์ •์˜ ๊ฐ€๋Šฅ
        std::cout << "x = " << x << std::endl;
    }
};

 

 

 

4. ์ƒ์†๊ณผ ๋‹คํ˜•์„ฑ

  • C์–ธ์–ด: C์—์„œ๋Š” ๊ตฌ์กฐ์ฒด๊ฐ€ ์ƒ์†์ด๋‚˜ ๋‹คํ˜•์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • C++: C++์—์„œ๋Š” ๊ตฌ์กฐ์ฒด๋„ ํด๋ž˜์Šค์ฒ˜๋Ÿผ ์ƒ์†์„ ์ง€์›ํ•˜๋ฉฐ, ๋‹คํ˜•์„ฑ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ๊ตฌ์กฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
struct Base {
    int x;
};

struct Derived : public Base {
    int y;
};

 

5. ์ƒ์„ฑ์ž์™€ ์†Œ๋ฉธ์ž

  • C์–ธ์–ด: C์—์„œ๋Š” ๊ตฌ์กฐ์ฒด์— ์ƒ์„ฑ์ž๋‚˜ ์†Œ๋ฉธ์ž๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์—†๋‹ค. ๊ตฌ์กฐ์ฒด์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ฑฐ๋‚˜ ํ•ด์ œํ•˜๋Š” ์ž‘์—…์€ ์ˆ˜๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•จ
  • C++: C++์—์„œ๋Š” ๊ตฌ์กฐ์ฒด์—๋„ ์ƒ์„ฑ์ž์™€ ์†Œ๋ฉธ์ž๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. C++์˜ ๊ตฌ์กฐ์ฒด๋Š” ํด๋ž˜์Šค์™€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ƒ์„ฑ์ž์™€ ์†Œ๋ฉธ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
struct MyStruct {
    int x;
    MyStruct(int val) : x(val) {}  // ์ƒ์„ฑ์ž
    ~MyStruct() {}                 // ์†Œ๋ฉธ์ž
};

 

 

 

6. ํ…œํ”Œ๋ฆฟ ์ง€์›

  • C์–ธ์–ด: C์—์„œ๋Š” ๊ตฌ์กฐ์ฒด์— ํ…œํ”Œ๋ฆฟ ๊ธฐ๋Šฅ์ด ์—†๋‹ค.
  • C++: C++์—์„œ๋Š” ๊ตฌ์กฐ์ฒด๋„ ํ…œํ”Œ๋ฆฟ์„ ์ง€์›ํ•˜์—ฌ, ์ œ๋„ค๋ฆญ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
template <typename T>
struct MyStruct {
    T value;
};

 

 

 

7. ๊ธฐํƒ€ ์ฐจ์ด์ 

  • ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ: C++์—์„œ๋Š” ๊ตฌ์กฐ์ฒด์—์„œ๋„ ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” C์—์„œ ์ง€์›๋˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ
  • ๋™์  ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ: C++์˜ ๊ตฌ์กฐ์ฒด๋Š” C++์˜ ๋™์  ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ(์˜ˆ: new ๋ฐ delete)๊ณผ ์ž˜ ํ†ตํ•ฉ๋œ๋‹ค. C์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์ด ๊ตฌ์กฐ์ฒด์™€ ํ†ตํ•ฉ๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ, ์ˆ˜๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น ๋ฐ ํ•ด์ œํ•ด์•ผ ํ•œ๋‹ค.

 

 

 

 

๊ณต์šฉ์ฒด(Union : ์œ ๋‹ˆ์˜จ)

 

- ๋™์ผํ•œ ๊ณต๊ฐ„์„ ๊ณต์œ ํ•˜๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ณ€์ˆ˜๋ฅผ ์ •์˜

 

ex)

 

 

 

๊ตฌ์กฐ์ฒด์™€ ๊ณต์šฉ์ฒด์˜ ์ฐจ์ด

 

- ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์ด ๋‹ฌ๋ผ์ง„๋‹ค.

- ๊ทธ๋Ÿฌ๋‚˜ ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๊ณต์šฉ์ฒด์˜ ๊ฐ ํ•„๋“œ์˜ ๊ฐ’์€ ์„œ๋กœ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฃผ์˜ํ•œ๋‹ค.

 

์‚ฌ์šฉ ์ฃผ์˜ ์˜ˆ์‹œ)

 

 

 

 

typedef

 

- ๊ธฐ์กด์˜ ํƒ€์ž…๊ณผ ๋™์ผํ•œ ์—ญํ• ์„ ํ•˜๋Š” ์ƒˆ๋กœ์šด ํƒ€์ž… ๋ณ„์นญ์„ ์ •์˜ํ•œ๋‹ค.

typedef unsigned int Age;
typedef double celsius t ;
typedef double fahrenheit_t;

 

- ์ƒˆ๋กญ๊ฒŒ ์ •์˜๋œ ํƒ€์ž… ์ด๋ฆ„์€ ๋ณ€์ˆ˜์˜ ์ •์˜, ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ํƒ€์ž… ๋“ฑ์œผ๋กœ ๋™์ผํ•˜๊ฒŒ ์‚ฌ์šฉ

Age me = 20;
celsius_t getCelsius(fahrenheit_t f);