首页 > 解决方案 > 有没有办法在 C 转换程序中实现宏(#define)?

问题描述

我正在尝试做一个从摄氏度到开尔文的简单转换程序,用宏实现函数#define,但我遇到了麻烦,因为我不知道我是否可以这样做。

#include <stdio.h>`

#include <stdlib.h>`

#define SUM(C) + (273.15)`

int main()
{
    float C;

    printf("Enter celsius:");
    scanf("%5.5f", &C);

    float X = SUM(%5.5f) + (273.15);

    printf("The conversion equals to %5.5f Kelvin\n", X);

    return 0;
}

标签: c

解决方案


这是你需要的:

#define TO_KELVIN(celsuis) ((celsuis) + 273.15)

定义这样的宏被认为是一种不好的做法,请改用函数。

完整代码:

#include <stdio.h>

#include <stdlib.h>

#define TO_KELVIN(celsuis) ((celsuis) + 273.15)

int main()
{
    float C;
    printf("Enter celsius:");
    scanf("%f", &C);
    float X = TO_KELVIN(C);
    printf("The conversion equals to %5.5f Kelvin\n", X);
    return 0;
}

您还尝试使用scanf("%5.5f", &C);5.5无法scanf仅用于该printf功能。


推荐阅读