게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
c언어 #define문에서 "\"의 용도는 무엇인가요?
게시물ID : programmer_13274짧은주소 복사하기
작성자 : ㅜ_ㅠ
추천 : 0
조회수 : 1895회
댓글수 : 4개
등록시간 : 2015/09/14 16:58:23
아래의 소스를 입력하는데 

#define hg(han,i,m,f)(\
                      (han).ph.flag=1,\
                      (han).ph.initial=i,\
                      (han).ph.medial=m,\
                      (han).ph.final=f,\
                      (han).code\
                      )

이렇게 되어 있는데
한번 \를 없애니까 소스에서 엔터키를 쳐서 다른 라인으로 넘어가면 그 다음 라인은 #define문에 적용이 않되는 거 같더군요.
아무래도 다음행도 적용시킬때 사용하는거 같은데 #define같은 전처리기문 뿐만아니라 다른 함수에서도 '\'의 구체적인 용도가 무엇인지 알고 싶네요.
그리고 이 소스는 한글문자를 입력하면 코드를 보여주는 프로그램인데요
cmd창에서는 한글이 완성형이라서 코드가 완성형 코드만 보이던데 
초성중성종성 단위로 볼 수 있도록 한글 조합형을 띄워놓은 상태에서 이 프로그램을 실행 할 방법은 없을까요?
답변 주시면 좋겠습니다.
#include <stdio.h>
typedef unsigned char byte;


union hangul{
unsigned code;
struct{
unsigned final: 5;
unsigned medial: 5;
unsigned initial: 5;
unsigned flag:1;
}ph;
}han={0xaa97};
#define hg(han,i,m,f)(\
                      (han).ph.flag=1,\
                      (han).ph.initial=i,\
                      (han).ph.medial=m,\
                      (han).ph.final=f,\
                      (han).code\
                      )

int main()
{
    char s[128];
    printf("Initial value:%6x\n\n",han.code);
    printf ("Bit-fields test:\n");
    han.ph.flag=1;
    han.ph.initial=0x0a;
    han.ph.medial=0x14;
    han.ph.final=0x17;
    printf("Combined Hangul code:%06x\n\n",han.code);

    printf("Combination test:\n");
    printf("Combined Hangul code:%06x\n",hg(han,0x0a,0x14,0x17));
    do{
        printf("\nEnter one Korean syllable");
        if(*gets(s)=='\0')break;
        printf("1st byte:%#04x,2nd byte:%#04x\n",
        (byte)s[0],(byte)s[1]);
        han.code=(byte)s[0]<<8|(byte)s[1];
        if(han.ph.flag!=1)
            printf("\nNot Korean!\n");
        else{
                printf("Combined Hangul code:%#06x\n",han.code);

        printf("Initial code:%#04x   ",han.ph.initial);
        printf("Medial code:%#04x   ",han.ph.medial);
        printf("Final code:%#04x\n",han.ph.final);
        }

    }while(1);
    printf("\nThe End.\n");

}

























전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호