왜 C 언어의 같은 파일에서 두 인터페이스가 완전히 같은 함수를 정의할 수 있습니까?

1095 단어
최근에 프로그램을 보니 큰 파일 중 두 개의 인터페이스가 완전히 같은 함수가 있는데 호출할 때 하나는 호출되고 다른 하나는 호출되지 않아 궁금했다. 이 파일에 있는 것이 비교적 많기 때문에 처음에는 왜 그런지 알아내지 못했는데 나중에 자세히 분석한 결과 오, 조건이 컴파일되었구나!예를 들면 다음과 같습니다.
#include<stdio.h>

// #define HAHA

#ifdef HAHA

int function(int x, int y)
{
	return x + y;
}

#else

int function(int x, int y)
{
	return x - y;
}

#endif

int main()
{
	int x = 10;
	int y = 5;
	int z = function(x, y);
	printf("%d
", z); return 0; }

결과: 5
 
#include<stdio.h>

#define HAHA

#ifdef HAHA

int function(int x, int y)
{
	return x + y;
}

#else

int function(int x, int y)
{
	return x - y;
}

#endif

int main()
{
	int x = 10;
	int y = 5;
	int z = function(x, y);
	printf("%d
", z); return 0; }

결과: 15

좋은 웹페이지 즐겨찾기