programing

C/C++에서 두 개의 '주요'

easyjava 2023. 9. 21. 21:40
반응형

C/C++에서 두 개의 '주요'

주요 기능 두 가지로 C 또는 C++로 프로그램을 작성할 수 있습니까?

아니요. 모든 프로그램은 하나의 메인()을 갖는데, 이것이 컴파일러와 링커가 어느 정도 의미 있는 곳에서 시작하는 실행 파일을 생성하는 방식입니다.

기본적으로 두 가지 옵션이 있습니다.

  1. 실제 메인을 호출할 명령행 인수를 결정하기 위해 메인()을 해석하도록 합니다.단점은 두 프로그램 모두에서 실행 파일을 갖게 된다는 것입니다.

  2. 공유 코드로 라이브러리를 만들고 각 기본 파일을 해당 라이브러리와 비교하여 컴파일합니다.결국 두 개의 실행 파일을 갖게 될 것입니다.

당신은 다음과 같은 두가지 함수를 가질 수 있습니다.main. 이름이 특별한 것도 아니고 예약된 것도 아닙니다.특별한 것은 그 기능인데, 마침 그런 이름이 붙었습니다.기능은 전역적입니다.그래서 다른 네임스페이스에 메인 함수를 쓰면 두 번째 함수가 생깁니다.main기능.

namespace kuppusamy {
  int main() { return 0; } 
}

int main() { kuppusamy::main(); }

첫번째main기능은 특별하지 않습니다. 어떻게 해야 하는지 주목하십시오.return노골적으로

, 하지만 표준 C가 아닌 플랫폼별로 제공되며, 실제로 달성하고 싶은 것(이 문제에 대한 해결 시도 대신)을 묻는다면 더 도움이 되는 답변을 얻을 수 있을 것입니다.

아니요, 프로그램은 단지 하나의 진입점을 가질 수 있습니다.main()). 실제로 일반적으로 C에서 주어진 이름의 함수는 하나만 가질 수 있습니다.

만약에static그리고 다른 소스 파일에 상주하고 있어 문제가 없다고 봅니다.

아니요.main()프로그램의 진입점을 정의하고 하나만 사용해야 합니다.main()프로그램의 함수(진입점).

솔직히 말씀드리면 저는 당신의 질문이 별로 이해가 되지 않습니다.

"메인 기능"이란 무엇을 의미합니까?프로그램 시작 시 가장 먼저 실행하는 기능을 말씀하시는 경우, 1개만 가능합니다. (1개만 가능합니다!)

응용 프로그램이 시작할 때 다른 작업을 수행하도록 하려면 명령줄을 읽은 다음(예:) 호출할 다른 기능을 결정하는 메인 기능을 작성할 수 있습니다.

어떤 아주 특별한 건축물에서는, 할 수 있습니다.이것은 메인 프로세서(PPE라고 하는 64비트 PowerPC Processor Element)를 위한 메인 프로그램과 8개의 다른 공동 프로세서(SPE라고 하는 32비트 Syneristic Processing Element)를 위한 하나 이상의 메인 프로그램이 있는 셀 프로세서의 경우입니다.

아니요, C 언어로 주() 함수를 둘 이상 가질 수 없습니다.표준 C 언어에서 메인() 함수는 프로그램의 진입점으로 정의되는 특수 함수입니다.다른 서명을 지정하지 않는 한 C 언어 또는 다른 언어로 작성한 함수의 복사본은 두 개 이상일 수 없습니다.하지만 main()의 경우는 선택의 여지가 없다고 생각합니다 ;)

아니요, 메인()은 프로그램의 시작점입니다. 두 개의 시작점을 가질 수 없기 때문에 두 개의 메인()을 가질 수 없습니다.

작성할 수 있고 컴파일되지만 링크가 되지 않습니다(링크기가 호환되지 않는 한).

는 입니다의 입니다.argv[0]하드 를 하드 링크(POSIX)를 사용하면 디스크 공간도 손실되지 않습니다.

표준 C는 중첩 함수를 허용하지 않지만 GCC는 허용합니다.

void main()

{

void main()

{

printf(“stackoverflow”);

}

printf(“hii”);

}

이 코드의 o/p는 -hii입니다.

GCC 컴파일러를 사용하는 경우.

프로그램에서 2 main()을 사용하여 둘 다 성공적으로 실행되도록 하려면 간단한 방법이 있습니다. 정의를 사용할 수 있습니다.예-

void main()

{

printf("In 1st main\n");

func1();

}

#define main func1

void main()

{

printf("In 2nd main\n");

}

여기서 o/p는 다음과 같습니다.

첫번째 메인에서

두번째 메인에서

참고: 여기서 경고와 충돌하는 유형의 func1이 생성됩니다.

예, 정의 위치를 변경하지 않습니다.

언급URL : https://stackoverflow.com/questions/1990932/two-main-functions-in-c-c

반응형