【问题标题】:How to compile C program without using limits.h header file in GCC?如何在不使用 GCC 中的limits.h 头文件的情况下编译C 程序?
【发布时间】:2020-12-17 10:08:20
【问题描述】:

我用 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编译了我的程序。

【问题讨论】:

  • 我想 not 包括头文件对你来说不够好。你想达到什么目标?
  • 可以排除,只要不使用文件中的任何值即可。

标签: c gcc compilation


【解决方案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 编译器选项)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-07
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-17
    • 2021-01-17
    相关资源
    最近更新 更多