>source

C로 계산기를 만들었는데 이제 GCC에서 limits.h 헤더 파일을 사용하지 않고 프로그램을 컴파일하고 싶습니다. 그러나 나는 방법을 모른다.

내 프로그램 소스 코드는 다음과 같습니다.

int printf(const char *format, ...);
int scanf(const char *format, ...);
int main()
{
    double num1, num2, r;
    char ch;
    do
    {
        scanf("%lf", &num1);
        scanf("%lf", &num2);
        printf("\ta - Add\n\tb - Substract\n\tc - Multiply\n\td - Divide\n");
        scanf(" %c", &ch);
        switch (ch)
        {
            case 'a':
                r = num1 + num2;
                printf("%lf + %lf = %f\n", num1, num2, r);
                break;
            case 'b':
                r = num1 - num2;
                printf("%lf - %lf = %f\n", num1, num2, r);
                break;
            case 'c':
                r = num1 * num2;
                printf("%lf * %lf = %f\n", num1, num2, r);
                break;
            case 'd':
                r = num1 / num2;
                if (num1 > 0 & num2 == 0 | num1 == 0 & num2 == 0)
                {
                    printf("Undefined\n");
                }
                else
                {
                    printf("%lf / %lf = %f\n", num1, num2, r);
                }
                break;
            default:
                printf("Invalid\n");
        }
    }
    while (1);
}

나는 내 프로그램을 gcc Program.c -o ConsoleCalculator1 .

  • 답변 # 1

    #ifndef TEST
    #include<limits.h>
    #endif
    
    

    그런 다음 컴파일 사용 중에 -D 태그 :

    gcc -DTEST -Wall file-name.c -o file-exec
    
    

    사용 -D , 매크로 TEST를 정의하므로 포함되지 않습니다. limits.h

    포함하려는 경우 limits.h , 그런 다음 매크로 TEST를 정의하지 마십시오 (사용하지 마십시오 -D 컴파일러 옵션)

관련 자료

  • 이전 javascript - 현재 배열의 객체가 이전 배열에 있는지 확인하는 방법
  • 다음 authentication - Azure Active Directory B2C에 REST Api가 있나요?