Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 unifdefall 명령입니다.
프로그램:
이름
유니프데프, 단일화 — 코드에서 전처리기 조건 제거
개요
유니프데프 [-bBcdehKkmnsStV] [-I통로] [-[IDSYM[=파]] [-[i]유SYM] ... [-f 애로] [-x {012}]
[-M 백내장] [-o 아웃파일] [인파일 ...]
단일화 [-I통로] ... 파일
기술
The 유니프데프 유틸리티는 조건부를 선택적으로 처리합니다. CPP(1) 지시. 그것은 a에서 제거합니다
지시문과 지시문이 지정하는 추가 텍스트를 모두 파일에서 제거해야 합니다.
그렇지 않으면 파일을 그대로 둡니다.
The 유니프데프 효용 행위 #만약, #ifdef, #ifndef, #엘리프, #그밖에및 #endif 선, 사용
에 지정된 매크로 -D 그리고 -U 명령줄 옵션 또는 -f 정의 파일. 지시문
매크로 사양이 명확한 값을 제공하기에 충분한 경우 처리됩니다.
제어 표현. 결과가 거짓이면 지시문과 그 아래의 다음 줄
컨트롤이 제거됩니다. 결과가 참이면 지시문만 제거됩니다. 안 #ifdef or
#ifndef 제어 매크로가 지정되지 않은 경우 지시문은 변경되지 않은 상태로 전달됩니다.
모든 품종 #만약 or #엘리프 알 수 없는 값이 있거나 유니프데프 구문 분석할 수 없습니다
변경 없이 통과됩니다. 기본적으로, 유니프데프 무시 #만약 그리고 #엘리프 상수가 있는 라인
표현; 다음을 지정하여 처리하도록 지시할 수 있습니다. -k 명령줄에 플래그를 지정합니다.
일반적으로 사용되는 식 구문의 하위 집합을 이해합니다. #만약 그리고 #엘리프 윤곽:
정수 상수, 명령줄에 정의된 매크로의 정수 값, 한정된()
연산자, 연산자 !, <, >, <=, >=, ==, !=, &&, ||, 및 괄호로 묶인 표현식. ㅏ
일종의 "단락" 평가가 다음을 위해 사용됩니다. && 연산자: 피연산자 중 하나가
확실히 거짓이면 다른 피연산자의 값이 다음과 같더라도 결과는 거짓입니다.
알려지지 않은. 마찬가지로 피연산자 중 하나라도 || 확실히 참이면 결과는 참입니다.
식을 평가할 때, 유니프데프 매크로를 먼저 확장하지 않습니다. 매크로의 가치
표현식이 아닌 단순 숫자여야 합니다. 제한된 형식의 간접 지정이 허용됩니다.
한 매크로의 값은 다른 매크로의 이름입니다.
대부분의 경우에, 유니프데프 객체와 유사한 매크로(인수 없음)를 구분하지 않습니다.
함수형 매크로(인수 포함). 함수와 같은 매크로 호출은 다음에 나타날 수 있습니다.
#만약 그리고 #엘리프 제어 표현식. 매크로가 명시적으로 정의되지 않았거나 정의된 경우
와 더불어 -D 명령줄에서 플래그를 지정하거나 #밝히다 에 -f 정의 파일, 해당
인수는 무시됩니다. 명령줄에서 매크로가 명시적으로 정의되지 않은 경우 -U
깃발, 또는 #언데프 에 -f 정의 파일, 이 이후로 인수가 없을 수 있습니다.
구문 오류가 발생합니다.
The 유니프데프 유틸리티는 지시문 중 하나가 언제인지 알기에 C에 대해 충분히 이해합니다.
주석 안에 있거나 백슬래시가 계속되는 줄의 영향을 받기 때문에 비활성입니다. 그것
비정상적으로 형식이 지정된 전처리기 지시문을 발견하고 레이아웃이 너무 이상할 때를 알 수 있습니다.
처리하는 것입니다.
라는 스크립트 단일화 모든 조건부를 제거하는 데 사용할 수 있습니다. CPP(1) a의 지시
파일. 그것은 사용 유니프데프 -s 그리고 CPP -dM 모든 제어 매크로 및 해당 매크로의 목록을 가져옵니다.
정의(또는 그 부족), 그런 다음 호출 유니프데프 처리할 적절한 인수와 함께
파일.
옵션
-DSYM=파
매크로가 주어진 값으로 정의되도록 지정합니다.
-DSYM 매크로가 값 1로 정의되도록 지정합니다.
-USYM 매크로가 정의되지 않았음을 지정합니다.
동일한 매크로가 둘 이상의 인수에 나타나면 마지막 항목이 우선합니다.
-IDSYM[=파]
-iUSYM C 문자열, 주석 및 줄 연속은 내에서 무시됩니다. #ifdef 그리고 #ifndef
이 옵션으로 지정된 매크로에 의해 제어되는 블록.
-f 애로
파일 애로 이 포함되어 있습니다 #밝히다 그리고 #언데프 전처리기 지시문은
해당하는 것과 동일한 효과 -D 그리고 -U 명령줄 인수. 당신은 가질 수 있습니다
여러 -f 인수와 혼합 -D 그리고 -U 인수; 이후 옵션 재정의
이전 것들.
각 지시문은 한 줄에 있어야 합니다. 객체와 유사한 매크로 정의(
인수)는 주어진 값으로 설정됩니다. 함수형 매크로 정의(
인수)는 1로 설정된 것처럼 처리됩니다.
-b 제거된 줄을 삭제하는 대신 빈 줄로 바꿉니다. 상호 배타적
와 더불어 -B 옵션을 선택합니다.
-B 삭제된 섹션 주변의 빈 줄을 압축합니다. 상호 배타적 -b
옵션을 선택합니다.
-c 보완, 즉 제거되거나 공백이 된 행은 유지되고
그 반대의 경우도 마찬가지입니다.
-d 디버깅 메시지 인쇄를 켭니다.
-e 기본적으로, 유니프데프 전처리기를 제거해야 하는 경우 오류를 보고합니다.
예를 들어 여러 줄 주석이 있는 경우 두 줄 이상에 걸쳐 있는 지시문
오른쪽 끝에 매달려 있습니다. 그만큼 -e 플래그는 대신 라인을 무시하도록 합니다.
-h 도움말을 인쇄합니다.
-I통로 지정 단일화 추가로 찾는 곳 #포함 파일. 이 옵션
에 의해 무시된다 유니프데프 호환성을 위해 CPP(1) 그리고 단순화하기 위해
의 구현 단일화.
-K 항상 결과를 치료하십시오. && 그리고 || 피연산자 중 하나라도 알 수 없는 연산자
알 수 없는 피연산자가 결과에 영향을 줄 수 없는 경우 단락 대신 알 수 없음.
이 옵션은 이전 버전의 유니프데프.
-k 방법 #만약 그리고 #엘리프 상수 표현식이 있는 줄. 기본적으로 섹션
이러한 라인에 의해 제어되는 라인은 일반적으로 시작하기 때문에 변경되지 않은 상태로 전달됩니다.
"#if 0"은 미래 또는 과거의 발전을 스케치하는 일종의 주석으로 사용됩니다.
일반 댓글과 마찬가지로 제거하는 것은 무례합니다.
-m 하나 이상의 입력 파일을 제자리에서 수정합니다.
-M 백내장
입력 파일을 수정하고 다음을 추가하여 원본 파일의 백업을 유지합니다.
백내장 입력 파일 이름에.
-n 오류가 발생하지 않도록 삭제된 줄 다음의 출력에 #line 지시문을 추가합니다.
출력 파일을 컴파일할 때 생성되는 입력의 줄 번호에 해당
파일.
-o 아웃파일
파일에 출력 쓰기 아웃파일 처리할 때 표준 출력 대신
단일 파일.
-s 평소와 같이 입력 파일을 처리하는 대신 이 옵션은 유니프데프 생산
전처리기 지시문 제어 식에 사용되는 매크로 목록입니다.
-S 마찬가지로 사람들이 미국의 비즈니스 관련 활동에 참석할 수 있도록 하는 -s 옵션이지만 각 매크로의 중첩 깊이도 인쇄됩니다. 이것은
가능한 상호의존적 조합의 수를 계산하는 데 유용합니다.
정의/정의되지 않은 매크로.
-t 유용한 C 문자열, 주석 및 줄 연속에 대한 구문 분석을 비활성화합니다.
일반 텍스트의 경우. 이건 블랭킷 버전 -ID 그리고 -iU 플래그.
-V 버전 세부 정보를 인쇄합니다.
-x {012}
종료 상태 모드를 XNUMX, XNUMX 또는 XNUMX로 설정합니다. 참조 EXIT 지위 아래 섹션
세부.
The 유니프데프 유틸리티는 다음에서 입력을 받습니다. 표준 없는 경우 파일 인수. 당신은 사용해야합니다
전에, -m or -M 여러 입력 파일이 있는 경우 옵션. stdin 또는
'-'를 사용하여 stdout에 출력합니다.
The 유니프데프 유틸리티는 -DSYM 의 옵션 diff(1).
EXIT 지위
정상적인 사용에서는 유니프데프 유틸리티의 종료 상태는 -x
옵션을 선택합니다.
종료 모드가 XNUMX(기본값)이면 유니프데프 출력이 다음이면 상태 0으로 종료
입력의 정확한 사본 또는 출력이 다른 경우 상태 1.
종료 모드가 하나인 경우 유니프데프 출력이 수정되지 않은 경우 상태 1로 종료하고 수정되지 않은 경우 0
다릅니다.
종료 모드가 XNUMX인 경우, 유니프데프 두 경우 모두 상태 XNUMX으로 종료됩니다.
모든 종료 모드에서 유니프데프 오류가 있으면 상태 2로 종료됩니다.
종료 상태는 다음과 같은 경우 0입니다. -h or -V 명령줄 옵션이 제공됩니다.
진단
중첩 수준이 너무 많습니다.
부적당 한 #엘리프, #그밖에 or #endif.
난독화된 전처리기 제어 라인.
Premature EOF(가장 최근 종료되지 않은 라인 번호 포함) #만약).
댓글의 EOF.
onworks.net 서비스를 사용하여 온라인에서 unifdefall 사용