블로그는 나의 힘!
[ Programing ]/C++2024. 8. 22. 20:42

1. # 연산자
매크로에서 # 연산자는 문자열로 변환(치환) 시켜주는 연산자.


// !< EX)
#define MACRO_PRINT(s)     printf(#s)

void main()
{
     MACRO_PRINT(Test Value);
}

MACRO_PRINT 매크로에서 s앞에 # 빠지면 오류 발생. 
매크로변수 s는 'Test Value' 받는데 "" 없기에 하나의 '변수'로 인식해 치환.
만약 매크로의 #s 에서 #  뺀다면 "Test Value" 앞뒤로 따옴표 붙여 실행.

즉, #은 받아온 매크로 변수를 문자열로 바꿔주는 앞뒤에 따옴표를 붙이는 것과 같은 의미.





2. ## 연산자
##은 두 개 토큰을 이어 주거나 붙여준다.


#define MACRO_INT_nNumber(x)     int nNumber##x;

위와 같은 매크로가 있고, MACRO_INT(0) 이라는 매크로를 사용했다고 가정하면
x 변수를 nNumber##x 와 같이 nNumber하고 붙여준 int형 변수를 선언. 

즉, 위의 매크로와 같은 표현은 
int nNumber0;
nNumber와 0을 붙여서 하나의 변수로 만들어 진다.


// !< EX)
#define MACRO_INT_nNumber(x)     int nNumber##x;
#define MACRO_SUM(res, x)     ((res) += (nNumber##x))
#define MACRO_PRINT(x)     printf("nNumber%d = %d \n", x, nNumber##x)

void main()
{
    int res = 0;
    for(int32 nIndex = 0; nIndex < 5; ++nIndex)
    {
        MACRO_INT_nNumber(nIndex);
        MACRO_PRINT(nIndex);
        MACRO_SUM(res, nIndex);
    }
    
    printf("SUM(res) : %d \n", res);
}

>>
nNumber0 = 0 
nNumber1 = 1  
nNumber2 = 2  
nNumber3 = 3  
nNumber4 = 4  
nNumber5 = 5  
SUM(res) : 15 




출저 : https://norux.me/22

 

c언어 매크로 사용법 - #, ## 연산자

1. # 연산자 매크로에서 # 연산자는 문자열로 변환(치환) 시켜주는 연산자 입니다. 아주 단순한 예를 들어보았습니다. 아래의 예제를 한번 살펴보도록 하겠습니다. #include #define PRINT(s) printf(#s) int

norux.me


.

Posted by Mister_Q
[ Programing ]/Lua Scirpt2024. 7. 10. 17:18

local strSex = "홍" 
local strName = "길동"
local strFullName = strSex .. strName



 

'[ Programing ] > Lua Scirpt' 카테고리의 다른 글

[LUA] Bit Flag  (0) 2023.05.02
[Lua] Bit Flag  (0) 2023.02.28
[Lua] current Time  (0) 2023.02.28
[Lua] for 반복문  (0) 2023.02.28
[Lua] 일일 체크 및 기준 시간  (0) 2023.02.28
Posted by Mister_Q
[ Programing ]/Other2024. 7. 3. 12:09

# 색상 값 검색 : 링크
# 코드 비교 체크 : 링크



 

'[ Programing ] > Other' 카테고리의 다른 글

색깔 값 찾기  (0) 2024.07.03
NotePad++ 배경 어둡게 하기.  (0) 2022.11.23
Notepad++ 에서 JSON viewer 사용하기.  (0) 2022.11.23
JSON 유효성 검사기  (0) 2022.02.07
코드 비교 체크. diffchecker  (0) 2022.01.25
Posted by Mister_Q