몽상실현개발주의

[따배씨] 16.8 미리 정의된 매크로들 #line, #error 본문

Language/C

[따배씨] 16.8 미리 정의된 매크로들 #line, #error

migrationArc 2021. 8. 30. 21:25

[따배씨] 16.8 미리 정의된 매크로들 #line, #error

따배씨 - 따라하며 배우는 C언어

16강 전처리기와 라이브러리

16.8 미리 정의된 매크로들 #line, #error

#include <stdio.h>

#include "DifferentFile.h"

void different_function(void);

int main()
{
    printf("__FILE__ : %s\n", __FILE__);
    // __FILE__ : /Users/leejuho/Desktop/studyC/studyC/main.c
    printf("__DATE__ : %s\n", __DATE__);
    // __DATE__ : May  3 2021
    printf("__TIME__ : %s\n", __TIME__);
    // __TIME__ : 16:31:12
    printf("__LINE__ : %d\n", __LINE__);
    // __LINE__ : 15
    printf("__func__ : %s\n", __func__);
    // __func__ : main
    
    different_function();
    // This function is different_function
    // This is line 34
    
    different_func_in_different_file();
    // __FILE__ : /Users/leejuho/Desktop/studyC/studyC/DifferentFile.h
    // __func__ : different_func_in_different_file
    
    return 0;
}

void different_function()
{
    printf("This function is %s\n", __func__);
    printf("This is line %d\n", __LINE__);
}

 

  • __STDC__ : C 언어 표준 만족 여부
  • __STDC_HOSTED__ : 표준을 더 엄격하게 따르는지 여부

 

#if __STDC_VERSION__ != 201112L
#error Not C11
#endif
  • __STDC_VERSION__ : 현재 사용하는 C 표준 버전
    • 버전을 확인하고, 아니라면 Error 발생

 

#if __LINE__ != 33
#error Not line 33
#endif
  • #error 조건 : 강제로 Error 발생
    • 현재 33번 줄이 아니라면, 33번 줄이 아니라는 Error 발생 시킴

 

 

 


이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다.

http://blog.naver.com/atelierjpro

 

실리콘 밸리의 프로그래머 : 네이버 블로그

안녕하세요! 홍정모 블로그에 오신 것을 환영합니다. 주로 프로그래밍 관련 메모 용도로 사용합니다. 강의 수강하시는 분들은 홍정모 연구소 카페로 오세요.

blog.naver.com

http://www.inflearn.com/course/following-c

 

홍정모의 따라하며 배우는 C언어 - 인프런 | 강의

'따배씨++'의 성원에 힘입어 새롭게 개발된 C 언어로 시작하는 프로그래밍 입문 강의입니다. '따배씨'와 함께 프로그래밍 인생을 업그레이드 해보세요., 따라하며 배우는 C언어 '따배씨++'의 성원

www.inflearn.com

 

Comments