我是C的新手并尝试使用Xcode编写一个程序,该程序采用华氏温度并将其转换为摄氏温度,反之亦然。到目前为止,我的代码如下。
#include <stdio.h>
#include "hw2.h"
void convert_temp(int degree1, char scale1, int* degree2, char* scale2){
if (scale1 == 'F') {
*degree2 = ((degree1 - 32) * 5) / 9;
*scale2 = 'C';
}
else {
*degree2 = ((degree1 * 9) / 5) + 32;
*scale2 = 'F';
}
}
int main() {
int degree1, degree2;
char scale1, scale2;
printf("Enter a temperature and a scale\n");
scanf("%d %c", °ree1, &scale1);
convert_temp(degree1, scale1, °ree2, &scale2);
printf("%d %c = %d %c\n", degree1, scale1, degree2, scale2);
return 0;
}
以下是正确的i / o示例:
Enter a temperature and a scale
32 F
32 F = 0 C
然而,当我运行代码时,这就是我得到的:
Enter a temperature and a scale
32 F
hw2 was compiled with optimization - stepping may behave oddly; variables may not be available.
(lldb)
我无法理解我得到的输出。谁能告诉我为什么我的输出没有32 F = 0 C
?我的代码中的所有内容对我来说都很好。
答案 0 :(得分:2)
假设hw2
是你的程序的名称,那么调试器抱怨它是在开启优化的情况下编译的,这在开发期间是不正常的,因为优化器会做各种聪明的事情来获得程序运行得更快。
您需要在Xcode中执行以下操作:
Debug
构建配置进行调试(检查方案)。Debug
构建配置启用优化(检查构建设置)。