전 C에서 코드를 찾아 내려고하고 있는데 전처리 기가 실제로 무엇을하는지 이해하려고 노력하고 있습니다. 내가 이해할 수없는 코드의 일부는 다음입니다 :C의 전 처리기에 대한 복잡한 구문
#define ERR(source) (perror(source),\
fprintf(stderr,"%s:%d\n",__FILE__,__LINE__),\
exit(EXIT_FAILURE))
전체 코드가 매우 짧고, 다음과 같습니다
이#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ERR(source) (perror(source),\
fprintf(stderr,"%s:%d\n",__FILE__,__LINE__),\
exit(EXIT_FAILURE))
int main(int argc, char** argv) {
char name[22];
scanf("%21s",name);
if(strlen(name)>20) ERR("Name too long");
printf("Hello %s\n",name);
return EXIT_SUCCESS;
}
이 매크로의 어느 부분을 이해하는 데 어려움이 있습니까? – UnholySheep
나는 모든 매크로를 이해하지 못한다. 나는 C에서 매우 초보자이다. 나는 무엇이 ERR인지, 그 다음 부분 (perror (근원 ....))을 알지 못한다. 그런데 백 슬래시가 왜 있는지 모른다. __FILE __, __ LINE__은 나를 이해하기가 어렵다. – hegendroffer
' ERR'은 매크로의 이름이고 (이것은 코드가 정의한 것입니다),'perror','fprintf' 그리고 다른 모든 것은 C 표준 라이브러리의 일부입니다. 온라인상에서 정의를 찾을 수 있습니다. 그리고 백 슬래시는 매크로 정의는 다음 라인에서 계속됩니다 (모든 것을 하나의 라인에 넣을 필요는 없습니다). – UnholySheep