我正在研究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);
}
我不明白最后一句错误是对我说的。
答案 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。