22019, 1/1101 회원가입  로그인  
   /x7375696e6567
   오늘 알아낸거.. 허접

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=20187 [복사]


C언어를 블로그하고 핸드북으로만 본지라
C언어에 대한 체계적인 지식이없어서
이번기회에 Programming in C 라는책을
도서관에서 빌려서봤는데

#define something function;
이렇게 세미콜론을 붙이지 않는게 좋다하드라구요.
왜그런가 2~3시간 생각해봤는데
아무래도 오류나 경고는 없을것같구 해서
아는형한테 부탁해봤는데
컴파일 성공이네요

#define a printf("hello");
#include <stdio.h>

int main()

{
  a
}

가능합니다

  Hit : 10583     Date : 2011/03/12 09:01



    
befehlen 보통 가독성을 좋게 하기 위해서 define 한 구문에는 ';'을 붙이지 않고 사용하는 곳에서 붙여서 사용을 합니다. 2011/03/12  
/x7375696e6567 아 쓴줄알았는데 안썼군요..
가독성을위함인걸로 알고있었습니다.
2011/03/12  
별빛을담아 #define a printf("hello");
일때

a로 함수를 호출하는데

#define a printf("hello")
일때는
a;로 호출할까요? ㅋ

지금 컴파일러가 없어서 못해봐서 그런데 누가 해보실분 없나요?
2011/03/12  
프라이드 ㄴ 네 맞네요 ㅎ

//
저건 그냥 컴파일러 레벨에서 대채가 이루어지는것뿐이에요
이해하기쉽게 예제하나 추가드리자면

[guest@ftz guest]$ cat pride.c
#define a "pride");
int main()
{
printf(a
}
[guest@ftz guest]$ ./pride
pride[guest@ftz guest]$

ㅋㅋ
2011/03/12  
dkflvkdnj 저런게 있을줄은몰랐네요 저희집 주변엔 도서관이 없어요 ㅠ 2011/03/13  
/x7375696e6567 오 프라이드님 ㅋㅋ
그건 엄청난 난독화군요 ㅋㅋ
2011/03/13  
/x7375696e6567 별담님
네맞아요 ㅋ
전처리기는 단지 치환의 역활이기때문에
2011/03/13  
akwjs566 c언어를 공부 하시내요 2011/03/13  
/x7375696e6567 akwjs566//
넹 ㅋㅋ
이기회에 체계적으로 공부해볼려구요
2011/03/13