๐Ÿป‍โ„๏ธ ์ „๊ณต๊ณต๋ถ€/C์–ธ์–ด

2. ๊ธฐ๋ณธ์ž๋ฃŒํ˜•๊ณผ ๋ณ€์ˆ˜

๊ณ„๋ž€์†Œ๋…„ 2024. 9. 3. 18:38

์ƒ์ˆ˜

  • const: ๋ณ€์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๊ฐ’์„ ๊ฐ–๊ณ ์ž ํ•  ๋•Œ ๋ณ€์ˆ˜๋ฅผ ์ƒ์ˆ˜ํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
  • #define: ๋งคํฌ๋กœ ์ƒ์ˆ˜, #์œผ๋กœ ์‹œ์ž‘  -> ์ „์ฒ˜๋ฆฌ๊ธฐ์— ์˜ํ•ด ํ•ด์„๋จ
๋”๋ณด๊ธฐ

'#'์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ตฌ๋ฌธ์€ ์ปดํŒŒ์ผ ์ „์— ์ „์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ๋จผ์ € ํ•ด์„ํ•จ

#include <stdio.h> 

int main(void)
{
    const int x = 8
    //10์ง„์ˆ˜ 8 ์ถœ๋ ฅ
    printf("%d\n", x);
    
    // ๋ฌธ์ž๋Š” ์ž‘์€ ๋”ฐ์˜ดํ‘œ('')๋กœ ๋ฌถ๋Š”๋‹ค
    printf("%c\n", 'A');  // ๋ฌธ์ž 'A' ์ถœ๋ ฅ
    
    // ๋ฌธ์ž์—ด์€ ํฐ ๋”ฐ์˜ดํ‘œ("")๋กœ ๋ฌถ๋Š”๋‹ค
    printf("%s\n", "A");  // ๋ฌธ์ž์—ด "A" ์ถœ๋ ฅ
    
    return 0;
}

๋ณ€์ˆ˜

#include <stdio.h>

int main(void)
{
    // ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™”
	char c = 'A';
    
    // ์ถœ๋ ฅ๊ฒฐ๊ณผ -> ๋ฌธ์ž A์˜ ์•„์Šคํ‚ค ์ฝ”๋“œ ๊ฐ’ = 65
    pritnf("๋ฌธ์ž %c์˜ ์•„์Šคํ‚ค ์ฝ”๋“œ ๊ฐ’ = %d\n",c,c);
    
    return 0;
}

 

์ž๋ฃŒํ˜•

1. ๋ฌธ์žํ˜• (char)

  • ์„ค๋ช…: ๋ฌธ์žํ˜• ์ž๋ฃŒํ˜•์€ ๋‹จ์ผ ๋ฌธ์ž๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • ํฌ๊ธฐ: 1๋ฐ”์ดํŠธ (8๋น„ํŠธ)
  • ๊ฐ’์˜ ๋ฒ”์œ„
    • signed char: -128 ~ 127 
    • unsigned char: 0 ~ 255
char a = 'A';  // ๋ฌธ์ž 'A'๋ฅผ ์ €์žฅ

2. ์ •์ˆ˜ํ˜• (int, short, long, long long)

  • ์„ค๋ช…: ์ •์ˆ˜ํ˜• ์ž๋ฃŒํ˜•์€ ์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • ํฌ๊ธฐ
    • int: 4๋ฐ”์ดํŠธ
    • short: 2๋ฐ”์ดํŠธ
    • long: 4๋ฐ”์ดํŠธ 

      int age = 30;
long big = 7000000000L;
unsigned int unbig = 4000000000U;

3. ์‹ค์ˆ˜ํ˜• (float, double, long double)

  • ์„ค๋ช…: ์‹ค์ˆ˜ํ˜• ์ž๋ฃŒํ˜•์€ ๋ถ€๋™์†Œ์ˆ˜์  ์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • ํฌ๊ธฐ
    • float: 4๋ฐ”์ดํŠธ
    • double: 8๋ฐ”์ดํŠธ
float pi = 3.14f;
double e = 2.111;

4. voidํ˜•

  • ์„ค๋ช…: voidํ˜•์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ž๋ฃŒํ˜•์œผ๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•จ์ˆ˜์—์„œ ๋ฐ˜ํ™˜ ๊ฐ’์ด ์—†์„ ๋•Œ ์‚ฌ์šฉ
  • ํฌ๊ธฐ: ์—†์Œ
void doNothing(void);

 

์ž๋ฃŒํ˜•, ๋ณ€์ˆ˜ ํฌ๊ธฐ ๊ณ„์‚ฐ

//์ž๋ฃŒํ˜• ํฌ๊ธฐ ๊ณ„์‚ฐ
printf("Size of int: %d bytes\n", sizeof(int));
printf("Size of float: %d bytes\n", sizeof(float));

//๋ณ€์ˆ˜ ํฌ๊ธฐ ๊ณ„์‚ฐ
int num;
printf("Size of num: %d bytes\n", sizeof(num));

 

์“ฐ๋ ˆ๊ธฐ ๊ฐ’

  • ๋ณ€์ˆ˜ ์„ ์–ธ์‹œ ์Šคํƒ์ด๋ผ๋Š” ์žฌํ™œ์šฉ ๊ณต๊ฐ„์— ํ• ๋‹น๋จ
  • ๋ฐ˜ํ™˜๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ด ์ „ ๊ฐ’์ด ์žˆ์œผ๋ฉด 0์œผ๋กœ ๋งŒ๋“ค์ง€ ์•Š๊ณ , ๊ทธ ๊ณต๊ฐ„์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๋”ฐ๋ผ์„œ ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ ๋™์‹œ์— ๊ฐ’์„ ํ• ๋‹นํ•จ์œผ๋กœ์จ ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.

 

ํ˜• ์ˆ˜์ •์ž: void๋ฅผ ์ œ์™ธํ•œ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์€ ํ˜•์ˆ˜์ •์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ณ€์ˆ˜๋ช… ์•ž์— ์„ ์–ธํ•œ๋‹ค.

  1. signed: ์Œ์ˆ˜์™€ ์–‘์ˆ˜๋ฅผ ๋ชจ๋‘ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ์ •์ˆ˜ํ˜•, int, char๋Š” signed๋กœ ๊ฐ„์ฃผ๋œ๋‹ค.
  2. unsigned: ์Œ์ˆ˜ ์—†์ด ์–‘์ˆ˜๋งŒ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ์ •์ˆ˜ํ˜• -> ๋™์ผ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋กœ ๋” ํฐ ์–‘์ˆ˜ ๋ฒ”์œ„ ํ‘œํ˜„ ๊ฐ€๋Šฅ
  3. short: ๊ธฐ๋ณธ ์ •์ˆ˜ํ˜• int๋ณด๋‹ค ์ž‘์€ ํฌ๊ธฐ์ธ 2๋ฐ”์ดํŠธ
  4. long: ๊ธฐ๋ณธ ์ •์ˆ˜ํ˜• int๋ณด๋‹ค ํฐ ํฌ๊ธฐ์ธ 4,8๋ฐ”์ดํŠธ
int x;
short int y;
long int z;

 

 

typedef

  • ๊ธฐ์กด ์ž๋ฃŒํ˜•์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ์ด๋ฆ„์„ ์ •์˜
  •  ex) unsigned int ํƒ€์ž…์— uint๋ผ๋Š” ์ƒˆ๋กœ์šด ์ด๋ฆ„์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„์—๋Š” unsigned int ๋Œ€์‹  uint๋ฅผ ์‚ฌ์šฉ
typedef ๊ธฐ์กด_๋ฐ์ดํ„ฐ_ํƒ€์ž… ์ƒˆ๋กœ์šด_์ด๋ฆ„;
typedef unsigned int uint;

enum

  • ์—ด๊ฑฐํ˜• ์ƒ์ˆ˜ ์ •์˜
#include <stdio.h>

// enum์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ด๊ฑฐํ˜• ์ƒ์ˆ˜ ์ •์˜
enum Day {
    SUNDAY,    // 0
    MONDAY,    // 1
    TUESDAY,   // 2
    WEDNESDAY, // 3
    THURSDAY,  // 4
    FRIDAY,    // 5
    SATURDAY   // 6
};

int main(void) {
    enum Day today = WEDNESDAY;  // ์—ด๊ฑฐํ˜• ์ƒ์ˆ˜ ์‚ฌ์šฉ

    switch (today) {
        case MONDAY:
            printf("Today is Monday.\n");
            break;
        case WEDNESDAY:
            printf("Today is Wednesday.\n");
            break;
        default:
            printf("Today is another day.\n");
    }

    return 0;
}