[Powered by Google Translate] 함수는 더 큰 프로그램 내에서 사용되는 코드의 섹션 아르 특정 작업을 수행 할 수 있습니다. 또한, 절차, 서브 루틴, 그리고 subprograms로 알려져 있습니다 그들은 정말 프로그램 내에서 단지 미니 프로그램이되기 때문입니다. 당신은 눈치 채지 못할 수도 있지만, 당신은 C로 프로그래밍 한 경우 당신은 가장 확실히 이미 기능을 사용했습니다 당신이 printf를 사용하여 화면에 물건을 쓸 때, 당신은 실제로 printf라는 함수를 사용하고 있습니다. 마찬가지로, GetInt 및 GetString은 CS50 당신을 위해 제공하는 기능입니다. 프로그래머로서, 우리는 여러 가지 이유로 기능을 사용합니다. 화면에 서면 같은 일반적인 작업을 수행 할 기능을 갖는 프로그래밍 할 때와 입력을위한 사용자에게 메시지를 표시하는 것은 우리에게 시간을 절약 할 수 있습니다. 그것은 그 같은 일을하는 코드를 작성하는 필요가 없습니다 그들은 이미 우리를 위해 완료 때문입니다. 우리는 그 기능이 내부적으로 작동하는 방법을 정확하게 이해하는 것이도 필요가 없습니다. 대신, 우리는 우리의 프로그램에서 그들을 사용하거나 호출하는 방법을 알고 있습니다. 그것은 큰 프로그램의 기능을 작성하는 것도 도움이 당신은 다른 사람들을 사용하지 계획하지 않더라도 단지 손에 큰 작업을 나눌 수 있습니다. 당신이 에세이 to 구조를 제공 할 많은 것처럼 이러한 방법으로, 당신은 당신의 코드 구조를 제공 그리고 정말 큰 프로젝트가 여러 사람을 사용 같은 시간에 다른 부분에서 작동하는 한 사람의 작업이 끝나는 곳은 깨끗하고 또 다른 시작 이니까. 함수는 일반적으로 인수 또는 매개 변수로 알려진 1 개 이상 입력, 작업 그런 다음 반환되는 출력 값으로 해당 입력을 변환. 그러나, 모든 입력 인수를 사용하지 않는 기능을 가지고 수도 있습니다 및 출력을 반환하지 않습니다. 좋아요, 충분히 보송 보송 한 것들. 의는 C에서 일부 실제 기능을 살펴 보자 여기, 믿거 나 말거나하는 사각형이라는 기능이 입력의 제곱을 계산합니다. 의 그것의 구문을 해부 보자. 이 함수에 처음 보는 단어, INT, 함수의 반환 유형을 지정, 그, 함수의 출력의 C 유형입니다. 이 기능은 유형 INT와 값을 출력합니다. 당신이 볼 다음 단어는이 경우 사각형 함수의 이름입니다. 적절하게 기능을 명명하는 것은 특히 중요합니다 아마도 함수가 무엇을 가장 눈에 띄는 문서입니다 때문입니다. 그것은이 기능 열려라 참깨 나 booyah 이름을 근사 할 수 있습니다 하지만 그건 우리에게 함수가 한 일에 대해 아무 것도 말해주지 않을 거요. 함수 이름이 함수 인수로 입력을 온 후. 그들은 괄호의 집합 내부에 나열되어 있습니다 자신의 유형 및 함수의 본문 내에서 사용할 수있는 이름을 모두 갖추고 있습니다. 광장은 광장에 단 1 인자, INT 소요 가 내가 이름 x를 제공하기로 결정했습니다. 이 함수의 선언 또는 프로토 타입을 끝납니다. 함수의 나머지 부분을 중괄호로 둘러싸는 , 시작과 함수 몸체의 끝을 나타냅니다 함수 자체의 정의. 광장은 아주 간단 기능입니다. 우리가해야 할 일은 그 자체에 x를 곱이기 때문에 그것은 단, 1 줄 있어요. 단어 리턴 출력 값을 지정하고 함수의 끝을 트리거합니다. 광장 기능을 사용하기 위해, 우리는 적절한 입력을 제공해야합니다 다음 출력을 캡처합니다. 여기, 당신은 그렇게 할 몇 가지 방법을 참조하십시오. 우리는 6 같은 원시 INT에 전달할 수 있습니다, 또는 우리는 같은 변수에 전달할 수 있습니다. 때마다 우리는 공평 전화합니다 우리는 변수에 출력을 캡처 한 다음 인쇄 할 수 있습니다. 그러나, 우리는 변수에 반환 값을 저장하고 인쇄 할 필요가 없습니다. 우리처럼 우리는 printf에 직접 보낼 수 때 광장 10, 하지만 우리는 공평 (10)의 반환 값에 액세스 할 수없는 것을 의미 다른 코드 인치 의 다른 간단한 예를 들어 보자. 이 시간, 우리는 함께 우리가 함수가 어떻게 생겼는지 볼 수는 2 수레를 합계합니다 그 대신 1 2 입력을 가지고 때. 당신이 볼 수 있듯이, 그것은 많은 차이가 있습니다. 우리가해야할 일은, 2 인자, B라는 수레에 추가합니다 첫 번째 인수에서 분리 쉼표를 사용하여 인수 목록, 역부족. 그럼, 광장과 합 기능 이해하​​기 매우 쉬운 그들은 당신이 수학 수업 시간에 본 적이있는 기능에 해당니까. 자, 약간의 차이가 있습니다 기능을 살펴 보도록하겠습니다. 대신 값을 반환, 이건 상태를 수정합니다. 이것은 부작용 것으로 알려져 있습니다. 이 프로그램에서, printf_fudd_style 기능 우리가 전에 무효 보지 못하는 반환 형식이 있습니다. 플레이는 함수가 아무것도 반환하지 않는 그런 말을하는 데 사용됩니다. 유형 무효 대한 변수가 없습니다 당신은 printf_fudd_style 같은 함수에서 무언가를 반환하려고 그렇게하면 컴파일러는 당신 소리 것입니다. printf_fudd_style 내부, 우리는 함수가 아직 작업을 수행하는 동안 알 즉, WS 모든 R을 전환 함수의 포인트는, 화면에 문자열을 수정 한 다음 인쇄하는 것입니다 프로그램의 상태를 변경하는 대신 결과를 반환. 이 기능을 사용하면, 매우 우리의 광장과 금액 함수를 사용하여 마치 우리는 변수에 결과를 저장하거나 다른 함수에를 통과하지 못한 경우를 제외하고 의 말을 할 결과가 없습니다 때문입니다. 그럼, 우리가 컴파일 및 엘머 퍼드 프로그램을 실행할 때, 그 "당신은 야비한 토끼!"참조 오른쪽으로 변환됩니다 "당신은 wascally wabbit!" 마지막으로, 토론 가치가 1 개 기능이있어 이후 당신은, 당신은 작성한 모든 C 프로그램에서 메인을 사용하고 있습니다. 메인이 훨씬 다른 같은 기능입니다. 그것은 반환 형식, 이름, 인수의 목록, 그리고 몸 있어요. 메인의 반환 유형은 항상 정수입니다 이 정수는이 종료 될 때 프로그램의 상태를 통신하는 데 사용됩니다. 이 성공적으로 실행습니까, 아니면 오류로 인해 조기 마감 한거죠? 제로로 돌아, 성공적인 실행을 나타냅니다 및 0이 아닌 값을 반환하면 오류를 나타냅니다. 당신이 작성할 프로그램의 종류에 따라, 다른 오류에 대해 서로 다른 코드를 반환하는 것은 도움이 될 수 있습니다 나중에 프로그램을 사용하는 사람들을위한. 전원 인수가 좀 더 복잡합니다. 인수 목록도 비어있을 수 있습니다 있는 우리는 괄호 사이에 빈 공간을 작성하여 표시 정수 및 문자 * s의 배열 :하거나 목록 2 인자를 가질 수 있습니다. 프로그램을 사용하고자 할 때 다음이 사용됩니다 프로그램이 호출 될 때 인수는 명​​령 줄에서에서 통과 시켰습니다. INT 인수는 일반적으로 argc라고합니다 그리고 변수는 argv로 알려진 숯불 * 배열의 동일한 길이입니다. 변수는 argv는 프로그램에 전달 된 명령 줄 인수를 포함하고 있습니다. 또 다른 한마디로, 우리는 더 자세히이 변수를 사용하는 방법에 대해 얘기하자. 지금, 당신은 주요 두 방법을 선언 자유롭​​게 할 수 있습니다. 나는 일반적으로 더 인수, 가능한 경우에, 짧은쪽으로 흘러 쓰기를 선택합니다. 이제 함수를 작성하는 방법을 알고, 당신은 더 크고 더 복잡한 프로그램을 개발하는 길에 잘하고 있습니다. 내 이름은 네이트 Hardison입니다. 이 CS50입니다.