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

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

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

비디오: [C/C++ 강좌] 34강. 프로토타입 2025
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 프로그래밍에서 함수 프로토 타입 만드는 방법 - 더미

편집자의 선택

여성 건강 : 케겔 운동 방법 - 인형

여성 건강 : 케겔 운동 방법 - 인형

케겔 운동은 성기의 근육을 타겟으로합니다. 이 근육은 출산 중에 발생하는 스트레칭으로 인해 종종 약해지지만, 임신 한 적이없는 여성을 포함하여 어떤 여성이라도 적절한 케겔 (Kegel)을하는 법을 아는 것이 도움이 될 수 있습니다. 본질적으로 케겔 (Kegel)은 생식기에 좋은 운동을 제공하여 ...

폐경기 동안 기대할 사항 - 인형

폐경기 동안 기대할 사항 - 인형

폐경은 모든 여성의 삶의 사실입니다. 다른 연령대의 여러 단계의 증상으로 진행됩니다. 폐경의 결과로 여성은 알을 낳지 않고 생리를 멈추지 만 여성 호르몬, 에스트로겐 및 호르몬의 생성을 감소시킵니다.

여성 건강 : 요로 감염을 예방하는 방법 - 인형

여성 건강 : 요로 감염을 예방하는 방법 - 인형

요로 감염 (UTI)은 상당히 여성의 공통점. 통증이있는 ​​배뇨 나 잦은 소변과 같은 요로 감염의 증상을 발견하면 치료를받는 것이 중요합니다. UTI 치료는 일반적으로 항생제의 빠른 과정이지만 전문가의 도움을받는 데는 지체가 있으면 치료 시간이 길어질 수 있습니다. ...

편집자의 선택

Salesforce 조직에서 깨끗한 데이터를 유지 관리하는 많은 회사에서 Salesforce 조직의 깨끗한 데이터 유지 보수

Salesforce 조직에서 깨끗한 데이터를 유지 관리하는 많은 회사에서 Salesforce 조직의 깨끗한 데이터 유지 보수

많은 사람들을 위해 일하는 것과 비슷합니다. 많은 기업들이 혜택을 인식하고 있음에도 불구하고 습관을 버리는 것에 저항합니다. 사람들은 깨끗한 데이터가 시스템에 들어갈 수 있도록 시간을 할애하고 싶지 않지만 같은 사람들은 빨리 작업 할 수 있습니다 ...

Salesforce에서 캠페인을 만드는 방법 - Professional, Enterprise 또는 Unlimited Edition 사용자를 위해 제공되는 인형

Salesforce에서 캠페인을 만드는 방법 - Professional, Enterprise 또는 Unlimited Edition 사용자를 위해 제공되는 인형

Salesforce의 모듈은 마케팅 프로그램을 관리, 추적 및 측정하는 데 사용하는 일련의 도구입니다. 캠페인 레코드는 캠페인 레코드입니다. 수동 또는 자동으로 리드, 연락처 및 / 또는 기회 레코드에 링크하여 캠페인에 대한 실제 메트릭을 제공 할 수 있습니다.

편집자의 선택

표시 관련 기사 Joomla 웹 사이트 - 인형

표시 관련 기사 Joomla 웹 사이트 - 인형

Joomla의 또 다른 멋진 모듈은 기사 - 관련 기사. 기사 - 관련 기사는 사이트 방문자가 보려고 선택한 기사와 관련된 기사를 표시하는 모듈입니다. 이 모듈은 현재 기사와 관련된 기사를 어떻게 알 수 있습니까? 그것은 메타 데이터에 입력 할 수있는 메타 데이터 키워드를 사용합니다 ...

Joomla의 저자, ​​편집자 및 발행인 계정 만들기 - 더미

Joomla의 저자, ​​편집자 및 발행인 계정 만들기 - 더미

Joomla는 세 가지 프런트 엔드 사용자, 백엔드 사용자 및 그 중간에있는 특수 클래스의 사용자 클래스가 있습니다. 이 클래스에는 3 개의 사용자 그룹이 있습니다. 작성자는 기사를 제출할 수 있습니다. 편집자는 새 기사를 제출하고 기존 기사를 편집 할 수 있습니다. 게시자는 새 기사를 제출하고 기존 기사를 편집하며 기사를 게시 할 수 있습니다. Joomla 사이트 작성자 작성 ...