不了解运行温度转换程序后收到的消息

时间:2016-04-13 13:19:01

标签: c xcode

我是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", &degree1, &scale1);
    convert_temp(degree1, scale1, &degree2, &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?我的代码中的所有内容对我来说都很好。

1 个答案:

答案 0 :(得分:2)

假设hw2是你的程序的名称,那么调试器抱怨它是在开启优化的情况下编译的,这在开发期间是不正常的,因为优化器会做各种聪明的事情来获得程序运行得更快。

您需要在Xcode中执行以下操作:

  • 确保使用Debug构建配置进行调试(检查方案)。
  • 确保您尚未为Debug构建配置启用优化(检查构建设置)。