개인 재정 C 프로그래밍에서 함수 프로토 타입 만드는 방법 - 더미

C 프로그래밍에서 함수 프로토 타입 만드는 방법 - 더미

비디오: [C/C++ 강좌] 34강. 프로토타입 2024

비디오: [C/C++ 강좌] 34강. 프로토타입 2024
Anonim

프로토 타입을 만들지 않으면 어떻게됩니까? C 프로그래밍에서와 마찬가지로 컴파일러 나 링커를 사용하면 오류 메시지를 알 수 있습니다. 그렇지 않으면 프로그램이 제대로 실행되지 않습니다. 세계의 종말은 아닙니다. 군 로봇을 프로그래밍하거나 금성 파리 새우의 새로운 종에 대한 유전자 코드를 설계하는 것이 아닙니다.

기본 기능; NO RETURN

#include void prompt (); / * 함수 프로토 타입 * / int main () {int loop; 문자 입력 [32]; 루프 = 0; while (loop ");}

연습 1 : 기본 함수에서 소스 코드 수정, 반환 안 함 3 행에서 프로토 타입을 주석 처리합니다. 결과를 빌드하십시오.

컴파일러 오류는 훌륭하고 정확하지만 기발한 것입니다. 다음은 코드:: 블록에 의해 생성 된 오류 메시지이며 메시지의 관련 부분 만 있습니다:

13 경고: 암시 적으로 함수 선언 ' prompt '23 경고: 충돌하는'prompt '유형 13 경고: 이전에 암시 적으로'prompt '가 선언되었습니다.

첫 번째 경고는 소스 코드 파일의 13 행에서 발생합니다. 여기서 prompt () () 함수를 호출합니다. 컴파일러는 프로토 타입이없는 함수를 사용하고 있음을 알리는 메시지를 표시합니다. 오류 메시지에 명시 적으로 함수를 선언하고있는 것이므로 아니요 아니지만 전체 오류는 아닙니다. >

두 번째 경고는 프로그램에서 prompt () 함수가있는 곳에서 발생합니다. 소스 코드에서 23 번째 줄에 있습니다. 경고에는 pro mpt ()가 (Line 11에서) 이미 선언되었고 두 번째 사용이 첫 번째 사용과 충돌 할 수 있습니다.

최종 경고는 다시 13 행에서 함수가 호출 된 곳의 참조입니다.

간결하게 말하면: 컴파일러는 prompt () 함수가 무엇인지 전혀 알지 못합니다. 코드는 컴파일되지만 실행은 위험합니다.

C 코드에서 프로토 타이핑이 절대적으로 필요하다는 결론을 내릴 수 있습니다. 그건 완전히 사실이 아닙니다. 소스 코드의 함수를 재정렬하여 프로토 타이핑을 피할 수 있습니다. 함수가 사용되기 전에 나열되는 한 프로토 타입이 필요하지 않습니다.

연습

2 : 연습 문제 10-3의 소스 코드를 편집하십시오. 3 행에서 주석 처리 된 함수 원형을 제거하십시오. 소스 코드의 맨 아래에서 prompt () 함수를 잘라내어 붙여 넣기 (이동)하십시오. main () 함수 위의 맨 위에 나열하십시오. 저장하고 빌드하고 실행하십시오. 함수 프로토 타입을 피하는 것은 연습 문제 2에 대한 해결책을 보여줍니다.

함수 프로토 타입 방지

#include / * 프롬프트 표시 * / void 프롬프트 (void) {printf ("C: DOS>");} int main () {int loop; 문자 입력 [32]; 루프 = 0; while (loop <5) {prompt (); fgets (input, 31, stdin); main () 함수를 먼저 작성한 다음 다른 함수를 먼저 작성하면 가독성을 높일 수 있지만 프로토 타입을 피하기 위해 먼저 자신의 함수를 자유롭게 사용할 수 있습니다.그리고 그렇지 않으면 다른 프로그래머가 그렇게 할 수 있다는 것을 명심하십시오. 그렇게 보았을 때 놀라지 마십시오.

Code:: 블록의 컴파일러 오류 메시지 뒤에 괄호가 있습니다. 괄호 안에있는 주석은

스위치

또는 특정 경고를 확인할 수있는 일반적인 명령 행 옵션을 참조합니다. 예: 연습 1의 오류 메시지는 전체 읽기: 11 경고: 암시 적으로 'prompt'함수의 암시 적 선언 (-Wimplicit-function-declaration) 20 경고: '프롬프트'의 충돌 유형 (기본적으로 활성화 됨) >

C 프로그래밍에서 함수 프로토 타입 만드는 방법 - 더미

편집자의 선택

JavaScript에서 HTML 양식 요소에 액세스하는 방법 - 다른 HTML 요소와 마찬가지로

JavaScript에서 HTML 양식 요소에 액세스하는 방법 - 다른 HTML 요소와 마찬가지로

자바 스크립트에서 HTML5 요소와 직접 상호 작용할 수 있습니다. 트릭은 선택한 요소가 지원해야하는 브라우저 및 플랫폼에서 작동하는지 확인하는 것입니다. 이 예제에서는 및 태그를 다음과 같은 솔루션의 일부로 사용하는 방법을 보여줍니다.

CSS 값 정의에 대한 빠른 가이드 구문 - 인형

CSS 값 정의에 대한 빠른 가이드 구문 - 인형

W3C (World Wide Web Consortium)에서 모든 CSS 속성의 구문과 가능한 값을 정의합니다. 정의를 가능한 한 정확하게 만들기 위해 W3C는 CSS 값 정의 구문이라는 공식 시스템을 사용합니다. 정의 구문은 가능한 값을 매우 정확하게 정의하지만 CSS 값 정의 구문을 읽는 중 ...

JavaScript로 동적 HTML 요소를 작성하는 방법 - 더미

JavaScript로 동적 HTML 요소를 작성하는 방법 - 더미

모든 페이지에 대한 특수 효과는 페이지에 동적 HTML 변경 기능을 제공하는 것입니다. 예를 들어 다음 예제와 같이 선택한 요소에 특수 효과를 만들 수 있습니다. function ChangeStyles (event) {// 요소에 대한 참조를 얻습니다. var ThisElement ...

편집자의 선택

Excel 2013 통합 문서의 변경 내용 수락 또는 거부 방법 - 변경 내용 추적을 설정하면 더미

Excel 2013 통합 문서의 변경 내용 수락 또는 거부 방법 - 변경 내용 추적을 설정하면 더미

Excel 2013 통합 문서의 경우 리본의 검토 탭에있는 변경 내용 추적 명령 단추의 드롭 다운 메뉴에서 Alt / RGC를 눌러 변경 내용 적용 / 거부 옵션을 선택하여 수락 또는 거부 할 변경 내용을 결정할 수 있습니다. 이렇게하면 Excel이 강조 표시된 모든 변경 내용을 검토합니다 ...

Excel에서 셀에 설명을 추가하는 방법 2016 - 문자

Excel에서 셀에 설명을 추가하는 방법 2016 - 문자

Excel 2016 워크 시트의 특정 셀에 주석을 달 수 있습니다. 댓글은 스티커 메모의 전자 팝업 버전과 유사합니다. 셀에 주석을 추가하려면 다음과 같이하십시오. 셀 포인터를 이동하거나 주석을 추가 할 셀을 클릭하십시오. 새 주석을 클릭하십시오.

Excel 피벗 테이블에 계산 된 필드를 추가하는 방법 - 더미

Excel 피벗 테이블에 계산 된 필드를 추가하는 방법 - 더미

피벗 테이블 내부의 값을 계산합니다. 계산 된 필드 및 항목을 표에 추가 할 수 있습니다. 계산 된 필드를 추가하면 새로운 행이나 열을 피벗 테이블에 삽입 한 다음 수식을 사용하여 새 행이나 열을 채울 수 있습니다. 예를 들어 다음과 같이 나타납니다.

편집자의 선택

포토샵 CS6에서 히스토리 기능으로 채우기를 사용하는 방법 - 더미

포토샵 CS6에서 히스토리 기능으로 채우기를 사용하는 방법 - 더미

채우기 Adobe Photoshop의 기능 Creative Suite 6는 선택을 원할 때 유용합니다. 특정 상태로 바꿀 영역을 쉽게 선택할 수 있으면 기록으로 채우기 기능을 사용할 수 있습니다. 특정 이미지에서 하늘이 마음에 들지 않는다고 가정 해보십시오. 선택한 항목 ...

Photoshop CS6에서 패싯 필터를 사용하는 방법 -

Photoshop CS6에서 패싯 필터를 사용하는 방법 -

Photoshop CS6의 이미지는 먼지와 스크래치를 줄이거 나 날카로운 모서리를 부드럽게하는 것입니다. 패싯 필터는 포스터 라이징 효과를 사용하여 이미지를 분할합니다. Photoshop CS6에서 이미지를 흐리게 처리하려는 한 가지 이유는 먼지 및 스크래치를 줄이거 나 밝기를 비슷하게하는 픽셀 블록을 모아서 기하학적 모양을 사용하여 단일 값으로 변환하기 때문입니다.

Photoshop CS6에서 손 도구 사용 방법 - 인형

Photoshop CS6에서 손 도구 사용 방법 - 인형

Photoshop CS6 손 도구는 이미지 문서에서 빠르게 이동하고 스크롤 막대와 유사하게 작업하여 작업을보다 신속하게 수행 할 수 있습니다. 손 도구는 손 도구를 클릭 할 필요가 거의 없기 때문에 실제 도구보다 기능이 더 많습니다. 간단히 ...