c - 有没有办法在 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;
}
解决方案
这是你需要的:
#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
功能。
推荐阅读
- javascript - 尝试使用 javascript 和 css 在点击时更改 img src?
- spring - 在 JPA 中使用 CrudRepository save() 方法仅更新多个对象是否有任何限制?
- ffmpeg - FFmpeg 从文件“如果存在”中删除字幕
- apache-flink - 需要一些 flink-sql 流式处理的例子
- docker - 使用 UI 在给定时间停止或运行 docker 容器
- python - tkinter:如何动态更改树视图中的列数
- javascript - 如何使用 Three.js 将多个 3D 对象链接到列表按钮?
- python - 全局平均池化不影响训练速度
- c++ - 由于____chkstk_darwin,在 Catalina 上使用 Deployment 10.10 编译的 MacOS 应用程序在 < HighSierra 的版本上崩溃
- angular - Angular2+ - 克隆一个变量并不能阻止改变它