질문이 불충분하다면 나는 프로그래머가 아닙니다. 문맥을 벗어나면 올바른 링크로 직접 이동하십시오 ...에 포함 된 파일
헤더 파일에 "file.h"라고 쓰면 여러 함수가 선언되어 있습니다. "file.c"에서 정의를 제공하는 것 외에도 다른 방법으로 다른 .c 파일을 사용하여 헤더 파일이 file.h (모든 해당 함수가 있음)에 남아 있도록 할 수 있습니다. 코드 블록을 사용하고 있습니다.
어떤 도움이 감사합니다 ....
질문이 불충분하다면 나는 프로그래머가 아닙니다. 문맥을 벗어나면 올바른 링크로 직접 이동하십시오 ...에 포함 된 파일
헤더 파일에 "file.h"라고 쓰면 여러 함수가 선언되어 있습니다. "file.c"에서 정의를 제공하는 것 외에도 다른 방법으로 다른 .c 파일을 사용하여 헤더 파일이 file.h (모든 해당 함수가 있음)에 남아 있도록 할 수 있습니다. 코드 블록을 사용하고 있습니다.
어떤 도움이 감사합니다 ....
을 구현했습니다.
#include "header.c"
#include <other.h>
: 당신이 헤더 파일이 header.h
라는 제목하고 function.c
뿐만 아니라 다른 라이브러리에 포함 된 기능을 포함해야 할 경우
당신은 단순히 header.h가에서 다음 을 할 필요가 여기서, other.h
은 다른 기능을 포함하는 기능적 헤더 파일입니다.
N.B : 답이 부분은 OP를 제거하는 문제의 부분을 말한다.
다음 질문에 대해서는 함수 선언이 getNode
과 일치하지 않는 것으로 보입니다. (void 함수로 생성되었지만 정수 매개 변수로 호출 함). 귀하의 문제를 해결하기 위해, 나는 그것을 밖으로 정렬하여 시작할 것입니다.
NB: this part of the answer refers to the source code the OP deleted from his question...
당신은 node
에 대한 포인터를 하나의 int
인수를 복용하고 반환로 getNode
을 선언합니다. 그러나 getNode
은 인수를 취하지 않고 포인터를 node
에 반환하는 것으로 정의합니다. 헤더 파일을 소스의 단지 덩어리 인 새로운 질문으로
node* getNode(int data)
{
node* temp=new node;
temp->data = data; // <- use the argument
temp->left=NULL;
temp->right==NULL;
temp->next==NULL;
return temp;
}
:
당신에게 하나 내가 당신의 정의를 개선하는 것, getNode
의 사용량 주어진 당신의 선언이나 정의를 개선 할 필요가 전 처리기 덕분에 포함됩니다.
으로 전역 변수, 함수 및 데이터 구조를 선언 할 수 있습니다. 그러나 이러한 선언을 이해하고 나머지 응용 프로그램과 동기화되도록주의해야합니다.
Qtn 1에 대한 복사 붙여 넣기 실수는 어땠습니까? 감사합니다 ... – Imposter
Q1 : 예, 각 기능마다 다른 구현 파일을 사용하고 연결하십시오.
실제로 이것은 별도의 컴파일 단위로 코드를 분할하는 좋은 방법입니다. 관련 코드를 쉽게 찾을 수있을뿐 아니라 일부 기능이 참조되지 않는 경우 실행 파일의 크기를 줄일 수 있습니다.
Q2 : 인수를 가지고 treelib.h에 정의 된대로는 getNode의 기능 getNode(int)
아니라 getNode()
당신의 정의를 정의하지 않았습니다. treelib.cpp에서 getNode를 구현 한 것은 아닙니다. 그래서 treelib.h에서 "node * getNode (int);"로 정의됩니다. 하지만 treelib.cpp에서는 "node * getNode()"로 구현했습니다. 둘은 동일하지 않습니다. 헤더의 정의와 일치하도록 treenode.cpp의 버전을 변경하면 문제가 없습니다.
헤더 파일은 일반적으로 구조/클래스, 상수, 함수 프로토 타입, 그런 종류의 물건을 선언하는 데 사용됩니다. 그러나 헤더 파일과 원본 파일 사이에 관계가없는이 있습니다. "소스 파일 당 하나의 헤더 파일"또는 그와 유사한 것이 없습니다.
원하는대로 코드를 분할 할 수 있습니다. file.h
은 반드시 file.cpp
파일이 있어야 함을 의미하지는 않습니다. 그것은 단지 대회입니다. 문제에 관한
, 당신은 잘못 그래, 당신이 그것에 대해 이야기 here is an article, 수, 첫 번째 질문에 대해 함수 (당신이 당신의 소스 파일에 매개 변수를 누락되었습니다.)
여기 내 그림의 주 파일은 무엇입니까? – Imposter
어떤 개념입니까? 당신은 두 가지 질문을했습니다 ... : P – gkiar
은 main에 header.h에 diff() 함수가 있고 header.hi에 prototype을주고 header.ci에 diff() 정의가있는 header.h가 포함되어 있습니다. 더 많은 함수 프로토 타입을 header.h에 diffDiff()라고 말하면 diffDiff() 함수 정의를 diffDiff.h 파일에 넣고 싶습니다. 어떻게하면 저의 목표를 달성 할 수 있을까요 – Imposter