Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 shtool-scpp 명령입니다.
프로그램:
이름
shtool-scpp - GNU shtool C 소스 파일 전처리기
개요
쉬툴 scpp [-v|--말 수가 많은] [-p|--보존하다] [-f|--필터 필터링] [-o|--산출 오필]
[-t|--주형 파일] [-M|--표시 표] [-D|--정의하다 이름] [-C|--수업 이름] 파일 [파일
...]
기술
이 명령은 공유를 위한 추가 ANSI C 소스 파일 전처리기입니다. CPP(1) 코드
세그먼트, 내부 변수 및 내부 기능. 이에 대한 의도는 다음과 같습니다.
ANSI C로 라이브러리 작성. 여기서 공통 공유 내부 헤더 파일은 일반적으로 다음 용도로 사용됩니다.
라이브러리 소스 파일 간에 정보를 공유합니다.
작업은 다음의 특수 구성을 구문 분석하는 것입니다. 파일s, 이것들로부터 몇 가지를 생성하십시오
구성하여 해당 위치에 삽입합니다. 표 in 파일 출력을 작성하여 오필.
또한 파일s는 절대 건드리거나 수정되지 않습니다. 대신 구조물이 제거됩니다.
나중에 CPP(1) 빌드 프로세스의 단계. 유일한 전제 조건은 모든 파일
``"#include ""가 있습니다오필"""''가 상단에 있습니다.
이 명령은 다음 기능을 제공합니다. 먼저 네임스페이스 오염을 방지하고
함수와 변수를 인식하여 내부 기호에 대한 프로토타입 작업을 줄입니다.
스토리지 클래스 식별자``로 정의됩니다.이름''. 예를 들어 이름 is
``intern'', ``intern void *foobar(int quux)"'' 함수 중 하나 파일님은입니다.
``"#define foobar __foobar"''와 ``"extern void *foobar(int)로 번역됩니다.
quux);"'' 에서 오필. 추가적으로 전역 ``"#define" 이름 "/**/"''도 다음에 생성됩니다.
오필 컴파일러가 이 추가 스토리지 클래스 식별자를 자동으로 무시하도록 합니다.
둘째, 라이브러리 소스 파일은 일반적으로 "typedef", "#define" 등을 공유하려고 합니다.
소스 파일 경계. 이를 달성하려면 이 항목을 수동으로
파일 또는 두 번째 기능을 사용하십시오 scpp: 모든 코드 입력 파일``"#if "로 캡슐화됩니다.이름
... "#endif"''가 자동으로 복사됩니다. 오필. 추가적으로 전역 ``"#define" 이름
0''도 다음에 생성됩니다. 오필 컴파일러가 이 부분을 자동으로 건너뛸 수 있도록 하기 위해(왜냐하면
이미 헤더에 있습니다).
옵션
다음 명령줄 옵션을 사용할 수 있습니다.
-v, --말 수가 많은
일부 처리 정보를 표시합니다.
-p, --보존하다
보존 오필 생성된 ``#line'' 라인과 무관합니다. 이는 다음과 같은 경우에 유용합니다.
실제 내용이 다음과 같은 경우 Makefile 오필 변경되지 않고 줄 번호만 변경됩니다. 기본값은
덮어쓰기.
-f, --필터 필터링
하나 이상의 전처리 적용 SED(1) 필터링 명령(일반적으로 다음 유형
``"s/.../.../"'')를 각 입력 파일에 저장한 후 입력을 구문 분석합니다. 이 옵션은
여러 번 발생합니다.
-o, --산출 오필
출력 파일 이름. 기본값은 "lib.h"입니다.
-t, --주형 파일
템플릿 파일 이름. 기본값은 "lib.h.in"입니다.
-M, --표시 표
생성된 구성으로 대체되도록 표시합니다. 기본값은 "%%MARK%%"입니다.
-D, --정의하다 이름
나를 해결. 기본값은 "cpp"입니다.
-C, --수업 이름
나를 해결. 기본값은 "인턴"입니다.
예
# 메이크파일
SRCS=foo_bar.c foo_quux.c
foo_p.h: foo_p.h.in
shtool scpp -o foo_p.h -t foo_p.h.in \
-M %%MARK%% -D cpp -C 인턴 $(SRCS)
/* foo_p.h.in */
#ifndef FOO_P_H
#FOO_P_H 정의
%%표시%%
#endif /* FOO_P_H */
/* foo_bar.c */
#include "foo_p.h"
#if cpp
#OURS_INIT 4711 정의
#endif
우리 인턴;
정적 int myone = 0815;
인턴 int bar(void)
{
우리 것 += 내 것;
}
/* foo_quux.c */
#include "foo_p.h"
int main(int argc, char *argv[])
{
int i;
우리 = OURS_INIT
for (i = 0; i < 10; i++) {
술집();
printf("우리는 이제 %d\n", 우리);
}
0가 돌아;
}
연혁
The GNU 쉬툴 scpp 명령은 원래 Ralf S. Engelschall이 작성했습니다.
<[이메일 보호]> 1999년 GNU 쉬툴. 이는 사전 준비가 필요하다는 점에서 촉발되었습니다.
에 있는 처리 시설 GNU PTH 프로젝트.
onworks.net 서비스를 사용하여 온라인으로 shtool-scpp를 사용하세요.