我需要理解这个C代码

我需要理解这个C代码,c,C,我开始学习C语言,所以我需要有人能解释下面的程序,它可以将摄氏温度转换成华氏温度,反之亦然。一步一步 #include <stdio.h> #define TF2TC main() { double tc, tf, offset, conv; offset = 32.; #ifdef TF2TC conv = 5. / 9.; printf("Fahrenheit Value= "); scanf("%lf",&am

我开始学习C语言,所以我需要有人能解释下面的程序,它可以将摄氏温度转换成华氏温度,反之亦然。一步一步

#include <stdio.h>

#define TF2TC

     main() {
     double tc, tf, offset, conv;

     offset = 32.;

#ifdef TF2TC
     conv = 5. / 9.;
     printf("Fahrenheit Value= ");
     scanf("%lf",&tf);
     tc = (tf - offset) * conv;
     printf("celsius value= %f\n",tc);
#endif
#ifndef TF2TC
     conv = 9. / 5.;
     printf("celsius value= ");
     scanf("%lf",&tc);
     tf = tc * conv + offset;
     printf("fahrenheit value= %f\n",tf);
#endif
}
#包括
#定义TF2TC
main(){
双tc、tf、偏置、conv;
偏移量=32。;
#IFTC
conv=5./9。;
printf(“华氏值=”);
扫描频率(“%lf”和&tf);
tc=(tf-偏移量)*conv;
printf(“摄氏值=%f\n”,tc);
#恩迪夫
#ifndef TF2TC
conv=9/5。;
printf(“摄氏值=”);
扫描频率(“%lf”、&tc);
tf=tc*conv+偏移量;
printf(“华氏温度值=%f\n”,tf);
#恩迪夫
}

以下是发布代码的主要概念

(A) 如果定义了
TF2TC
宏,则编译代码以将用户输入从华氏温度转换为摄氏温度

(B) 如果未定义
TF2TC
宏,则编译代码以将用户输入从摄氏度转换为华氏度


在发布的代码中,
TF2TC
宏是由以下内容定义的:
#define TF2TC
,因此(A)代码被编译,而另一段代码被忽略。

当开始学习C时,人们从何处想出这样的程序?这不是。。。我能想象的最好的学习计划。只要读《K&R》或其他一些有意义的书就行了。:)发布的代码编译不干净。编译时始终启用所有警告。(对于gcc,至少使用:
-Wall-Wextra-pedantic
)然后修复警告。注意:main()函数的声明总是返回一个“int”
double tc, tf, offset, conv; // --> declaring 4 doubles

     offset = 32.; // --> assigning 32.0 to offset

#ifdef TF2TC // --> if the macro TF2TC was defined do this:
     conv = 5. / 9.; // --> assigning 5. / 9. to conv
     printf("Fahrenheit Value= "); // --> printing "Fahrenheit Value= "
     scanf("%lf",&tf); // --> scanning user input and storing it in tf
     tc = (tf - offset) * conv; // --> assigning (tf - offset) * conv to tc
     printf("celsius value= %f\n",tc); // --> printing "celsius value= {value of tc}"
#endif
#ifndef TF2TC // --> if the macro TF2TC wasn't defined do this:
     conv = 9. / 5.; // --> assigning 5. / 9. to conv
     printf("celsius value= "); // --> printing "celsius value= "
     scanf("%lf",&tc); // --> scanning user input and storing it in tf
     tf = tc * conv + offset; // assigning tc * conv + offset to tf
     printf("fahrenheit value= %f\n",tf); // --> printing "fahrenheit value= {value of tf} "
#endif