C ++语法,简单的算术函数变量结果未声明?

时间:2014-05-19 19:29:33

标签: c++

我正在研究C ++,我很困惑为什么这个函数不起作用。来自Ruby,这应该是轻而易举但我似乎无法让这个工作?对我的语法有什么想法吗?我得到的错误是这个?

sum.c: In function 'sum':
sum.c:7:5: error: 'result' undeclared (first use in this function)
sum.c:7:5: note: each undeclared identifier is reported only once for each function it a   
ppears in

这是我的简单功能:

#include <stdio.h>

void sum(int a, int b) {
  // Write your code here
  // To print results to the standard output you can use printf()
  // Example: printf("%s", "Hello world!");
  result = a + b;
  printf(result);
}

我不明白最后一句错误是对我说的。

2 个答案:

答案 0 :(得分:5)

您实际上没有声明您的函数中的result变量(但只是尝试使用它),将代码更改为

void sum(int a, int b) {
  int result = a + b;
//^^^
  printf("result = %d\n",result);
}

你可能希望像这样声明/定义sum()函数

int sum(int a, int b) {
  return a + b;
}

并使用printf()

进行调用
  printf("result = %d\n",sum(5,12));

如果你想这样做,请使用c ++惯用语法

#include <iostream>
// ...
std::cout << sum(5,12) << std::endl;

答案 1 :(得分:3)

错误消息足够清楚:变量结果未声明,其类型未知。你可以写

void sum(int a, int b) {
  // Write your code here
  // To print results to the standard output you can use printf()
  // Example: printf("%s", "Hello world!");
  int result = a + b;
  printf( "%d\n", result );
}

void sum(int a, int b) {
  // Write your code here
  // To print results to the standard output you can use printf()
  // Example: printf("%s", "Hello world!");
  auto result = a + b;
  printf( "%d\n", result );
}

或者您可以编写没有变量结果的函数

void sum(int a, int b) {
  // Write your code here
  // To print results to the standard output you can use printf()
  // Example: printf("%s", "Hello world!");
  printf( "%d\n", a + b );
}

考虑如何在上面的代码中使用函数printf。