#define์€ ์™œ ์‚ฌ์šฉํ•˜๋Š” ๊ฑธ๊นŒ?

๋‹จ์ˆœํžˆ ์ƒ์ˆ˜ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด define์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ผ๊นŒ?

์ด๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด์„  ์†Œ์Šค ์ฝ”๋“œ์˜ ๋ณ€ํ™˜ ๊ณผ์ •์„ ์•Œ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

โ€‹

โญ1. Build ์ˆœ์„œ


Build์˜ ์ˆœ์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

exe ํŒŒ์ผ ์ƒ์„ฑ : ์†Œ์Šค์ฝ”๋“œ -> ์ „์ฒ˜๋ฆฌ -> ์ปดํŒŒ์ผ -> ๋งํฌ -> ์‹คํ–‰

mcu ํ—ฅ์‚ฌ ํŒŒ์ผ ์ƒ์„ฑ : ์†Œ์Šค์ฝ”๋“œ -> ์ „์ฒ˜๋ฆฌ -> ์ปดํŒŒ์ผ -> ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ๋ณ€ํ™˜ -> ํ—ฅ์‚ฌ ํŒŒ์ผ ์ƒ์„ฑ -> MCU ๋‹ค์šด๋กœ๋“œ
โ€‹

C์–ธ์–ด๋ฅผ ์ฒ˜์Œ ๊ณต๋ถ€ํ•  ๋•Œ, #define์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์„ ๊ฑฐ์น˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•œ ์ ์ด ์žˆ๋‹ค.

#์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์žฅ์€ ์ „๋ถ€ ์ „์ฒ˜๋ฆฌ๊ธฐ ์ง€์‹œ์ž์ž„์—๋„ #include๋Š” ์ „์ฒ˜๋ฆฌ๊ธฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์•˜๋‹ค. ํ•ญ์ƒ C์–ธ์–ด๋ฅผ ์‹ค์Šตํ•  ๋•Œ,

์˜๋ฌด์ ์œผ๋กœ #inlcude <stdio.h>๋ฅผ ์ž‘์„ฑํ•œ ํํ•ด์ด๋‹ค.

โ€‹

โญ2. ์ „์ฒ˜๋ฆฌ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?


์ „์ฒ˜๋ฆฌ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

์ปดํŒŒ์ผ ์ „์— ์ฒ˜๋ฆฌ๋˜๋Š” ํ•˜๋Š” ์ž‘์—…์ด๊ณ  ์ „์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์žฅ์น˜๋ฅผ ์ „์ฒ˜๋ฆฌ๊ธฐ๋ผ๊ณ  ํ•œ๋‹ค.

์ „์ฒ˜๋ฆฌ๊ธฐ๋Š” ํ—ค๋” ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ค๊ฑฐ๋‚˜, ์†Œ์Šค ํŒŒ์ผ ๋‚ด๋ถ€์˜ ํŠน์ • ๋ฌธ์ž์—ด์„ ์ƒ์ˆ˜ ๋˜๋Š” ๋ฌธ์ž๋กœ ์น˜ํ™˜ํ•˜๊ฑฐ๋‚˜, ์กฐ๊ฑด์— ๋”ฐ๋ผ์„œ ์ฝ”๋“œ์˜ ์ผ๋ถ€๋ฅผ ์ปดํŒŒ์ผํ•˜๊ฑฐ๋‚˜ ์ปดํŒŒ์ผํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๋Š” ์„ ํƒ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.


๊ถ๊ธˆ์ฆ์ด ํ•˜๋‚˜ ๋ฐœ์ƒํ•œ๋‹ค.

#define์€ ์™œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€? ๋‹จ์ˆœํžˆ ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜๋ฅผ ์„ ์–ธ ๋ฐ ํ˜ธ์ถœํ•˜๋ฉด ๋˜์ง€ ์•Š๋Š”๊ฐ€? ์ผ๋ฐ˜ ๋ณ€์ˆ˜ ๋ฐ ํ•จ์ˆ˜์™€ ๋งคํฌ๋กœ(#define)์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€?

์ด๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„  ์ปดํŒŒ์ผ ๋‹จ๊ณ„๋ฅผ ์ดํ•ดํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.


์ปดํŒŒ์ผ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•˜๋Š” ๋ฒˆ์—ญ๊ธฐ์ด๋‹ค. ์™œ ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•˜๋Š”๊ฐ€? ์†Œ์Šค ์ฝ”๋“œ๋Š” ์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๋ฌธ์žฅ์ด๋ฉฐ, ๊ธฐ๊ณ„๋Š” ์ดํ•ดํ•  ์ˆ˜ ์—†๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ธฐ๊ณ„๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์žฅ์œผ๋กœ ๋ฒˆ์—ญํ•ด์ค˜์•ผ ํ•œ๋‹ค.

C์–ธ์–ด๊ฐ€ ์ƒ๊ธฐ๊ธฐ ์ด ์ „, ๊ฐœ๋ฐœ์ž๋“ค์€ ๊ธฐ๊ณ„(์ปดํ“จํ„ฐ, CPU)๋ฅผ ์ง์ ‘ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๊ณ„์–ด(์–ด์…ˆ๋ธ”๋ฆฌ์–ด)๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•˜์˜€๋‹ค. ํ•˜์ง€๋งŒ CPU๋Š” ๋‹ค์–‘ํ–ˆ๊ณ , CPU์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ๊ฐ๊ธฐ ๋‹ฌ๋ž๋‹ค๊ณ  ํ•˜๋ฉฐ, ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋žจ์—๋„ ์ฝ”๋“œ๊ฐ€ ๊ต‰์žฅํžˆ ๊ธธ์–ด์กŒ๋‹ค.


์ด ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, ๊ธฐ๊ณ„์–ด๋ฅผ ์ง์ ‘ ์‚ฌ๋žŒ์ด ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ๋ฒˆ์—ญ๊ธฐ๋ฅผ ๊ฐœ๋ฐœํ–ˆ๋Š”๋ฐ ๊ทธ๊ฒƒ์ด ์ปดํŒŒ์ผ๋Ÿฌ์ด๋‹ค. ๊ฐœ๋ฐœ์ž๋“ค์€ ๋” ์ด์ƒ ๊ธฐ๊ณ„์˜ ์ข…๋ฅ˜๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

 

typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned long u32;
typedef signed char s8;
typedef signed short s16;
typedef signed long s32;
unsigned char๋ฅผ u8์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋Œ€์ฒดํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
 
์ด์œ ๋Š” ๊ฐ„๋‹จํ•˜๋‹ค. unsigned char๊ฐ€ ๋„ˆ๋ฌด ๊ธธ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
(์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•  ๋•Œ, ์ „์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ u8์„ unsigned char๋กœ ์ž๋™์œผ๋กœ ์น˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์— ์ฐจ์ด๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.)
 
ํ”„๋กœ์ ํŠธ๊ฐ€ ์ ์  ์ปค์ง€๋ฉด, ์ฝ”๋“œ์˜ ๊ธธ์ด์™€ ํŠธ๋ฆฌ์˜ ๋Œ‘์Šค(Depth)๊ฐ€ ๋Š˜์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ํฐ ํ”„๋กœ์ ํŠธ์ผ ์ˆ˜๋ก ์ตœ๋Œ€ํ•œ ์‹ฌํ”Œํ•˜๊ฒŒ ๊ฐ€์ ธ๊ฐˆ๋ ค๊ณ  ๋…ธ๋ ฅํ•œ๋‹ค.
 
์ž˜ ์งœ์—ฌ์ง„ ์ฝ”๋“œ๋Š” ๋‚จ๋“ค๋„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ์—ฌ์•ผ ํ•œ๋‹ค. (ํŠนํžˆ ์ „์žฅ ์—…๊ณ„๋Š” ์ฝ”๋“œ๋ฅผ ์ค„์ด๋Š” ๊ฒƒ ๋ณด๋‹ค ๊ธ€์„ ์“ฐ๋“ฏ ์ผ๋ถ€๋Ÿฌ ํ’€์–ด ์“ฐ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.)
 
๊ฐ€๋” ๋ณต์žกํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‚˜ ์ฝ”๋“œ๋กœ ์งœ๋Š”๊ฒŒ ๊ณ ์ˆ˜๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฌด์กฐ๊ฑด simple is best์ด๋‹ค.
 
๊ฐ€๋…์„ฑ์ด ๋‚ฎ์€ ์ฝ”๋“œ๋Š” ์ ˆ๋Œ€ ์ข‹์€ ์ฝ”๋“œ๊ฐ€ ๋  ์ˆ˜ ์—†๋‹ค.
 
์•„๋ž˜๋Š” ํ’€ ์ฝ”๋“œ์ด๋‹ค.
 
๊ฐ„๋‹จํžˆ ์ฝ”๋“œ ๋Œ๋ ค๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด, ๊ดœ์ฐฎ์€ ์˜จ๋ผ์ธ ์ปดํŒŒ์ผ๋Ÿฌ๋„ ๋งŽ์œผ๋ฏ€๋กœ ๊ตณ์ด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๋™์ž‘ ์‹œํ‚ฌ ํ•„์š” ์—†์ด ๋ฐ”๋กœ ๋นŒ๋“œํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜ ๋งํฌ๋ฅผ ํ†ตํ•ด์„œ ๋ฐ”๋กœ ๋นŒ๋“œํ•ด ๋ณผ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ  ๋ฐ”๋ž€๋‹ค.

โ€‹

https://www.mycompiler.io/ko/new/c

 

์ƒˆ C ํ”„๋กœ๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ - ๋งˆ์ด์ปดํŒŒ์ผ๋Ÿฌ - myCompiler

์‹คํ–‰ ์ฝ”๋“œ ์ฝ”๋“œ ์ €์žฅ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์œ ์ง€ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์—๋””ํ„ฐ์— ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๋™์•ˆ ์–ธ์–ด๋ฅผ ์ „ํ™˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ ์ง€ํ•˜๋ ค๋ฉด โ€œ๊ธฐ์กด ์ฝ”๋“œ ์œ ์ง€โ€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ œ๋กœ ๋ฐ”๊พธ๋ ค๋ฉด โ€œ์˜ˆ์ œ๋กœ ๋ฐ”

www.mycompiler.io

#include <stdio.h>

typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned long u32;
typedef signed char s8;
typedef signed short s16;
typedef signed long s32;

int main() {
    u8 l_signal8bitOut = 10;
    u16 l_signal16bitOut = 65000;
    u32 l_signal32bitOut = 300000000;
    
    printf("%d!\n", l_signal8bitOut);
    printf("%d!\n", l_signal16bitOut);
    printf("%ld!\n", l_signal32bitOut);
    return 0;
}
728x90
๋ฐ˜์‘ํ˜•
18์ง„์ˆ˜