개인 재정 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 프로그래밍에서 함수 프로토 타입 만드는 방법 - 더미

편집자의 선택

행사에서 연설을 신청하는 방법 - 인형

행사에서 연설을 신청하는 방법 - 인형

강연을 제안 할 수 있어야합니다 다른 잠재적 인 연사보다 이벤트 참석자에게 더 많은 가치를 제공 할 수 있음을 입증하십시오. 연설 인재 풀은 가능한 연설 기회 수보다 빠르게 증가하고 있습니다. 당신은 이벤트 기획자에게 당신이 원하는 바를 물어볼 수있었습니다. ...

새로운 온라인 커뮤니티 회원 유치 방법 - 온라인 커뮤니티의 인형

새로운 온라인 커뮤니티 회원 유치 방법 - 온라인 커뮤니티의 인형

회원은 일시적입니다. 많은 사람들은 그들이 특정한 목표를 성취 할 때까지 주변에 머물러 있습니다. 다른 사람들은 관심을 잃고 새로운 행 아웃을 찾습니다. 따라서 정기적으로 신입 회원을 영입하지 않으면 커뮤니티가 사라집니다. 사람들이 교류 할 수있는 장소를 마련하는 데 어려움을 겪고 있습니다.

엄마 블로거로서 언론의 관심을 끄는 방법 - 인형

엄마 블로거로서 언론의 관심을 끄는 방법 - 인형

수십만 (또는 수백만)의 사람들이 엄청난 성과를 거두고 있습니다. 예상대로, 쉽게 성취되지는 않습니다. 뉴욕 타임스에 언급되거나 투데이 쇼에 출연하기 위해서는 많은 시간과 노력과 신뢰가 필요합니다. 아마도 ...

편집자의 선택

Ning 사용자 기고에 대한 코멘트 방법 - 인형

Ning 사용자 기고에 대한 코멘트 방법 - 인형

Ning 계정에 로그인하면 다른 Ning 사용자의 블로그 게시물, 회신 한 이벤트, 사진 및 비디오에 대한 의견을 남깁니다. 회원님의 논평 벽에 남긴 댓글, 순수 텍스트, 다른 웹 사이트 링크 및 퍼간 동영상과 같은 요소가 귀하의 댓글에 포함될 수 있습니다 ...

닝 네트워크의 광고 제어 방법 - 덤프

닝 네트워크의 광고 제어 방법 - 덤프

기본적으로 닝 네트워크는 애드 센스 광고는 오른쪽 열에 있습니다. 누군가 광고를 클릭하면 생성 된 모든 수익이 Ning으로 이동합니다. 네트워크에서 광고를 게재하여 수익을 얻고 싶거나 광고를 전혀 원하지 않는 경우 제어 광고 프리미엄 서비스를 구입해야합니다.

Ning에서 그룹을 만드는 방법 - Dingy

Ning에서 그룹을 만드는 방법 - Dingy

Ning에서 새로운 그룹을 시작하는 것은 가장 멋진 방법 중 하나입니다. 네가 닝 네트워크에서 할 수있는 일. 그룹을 만들 수 있도록 네트워크가 설정되어 있다면 다음 단계를 따르십시오.

편집자의 선택

Canon Rebel T3 시리즈 카메라로 원시 이미지 파일 처리하기 - 더미 파일

Canon Rebel T3 시리즈 카메라로 원시 이미지 파일 처리하기 - 더미 파일

Canon Rebel T3 또는 T3i로 촬영 한 이미지를 원시 데이터로 캡처 할 수 있습니다. Canon 소프트웨어를 사용하는 경우 Raw 파일을 즉시 인쇄 할 수는 있지만 인쇄하기 전에 사진 작업실로 가져 가서 온라인으로 공유하거나 사진 소프트웨어에서 편집 할 수 있습니다.

Canon Rebel T3 시리즈 카메라에서 자동 초점 포인트 설정 - 인형

Canon Rebel T3 시리즈 카메라에서 자동 초점 포인트 설정 - 인형

Canon Rebel T3 또는 T3i를 사용하는 스포츠 모드에서는 카메라가 중심 초점 위치에 초점을 둡니다. Creative 자동 및 A-DEP 모드뿐만 아니라 다른 완전 자동 노출 모드 (장면 인텔리전스 자동, 인물, 풍경 등)에서 카메라의 자동 초점 시스템은 9 개의 자동 초점을 모두 찾습니다 ...