【发布时间】:2010-09-09 02:49:10
【问题描述】:
StackOverflow 的新手和 C 的新手。我正在尝试将结构作为函数“add_fields”中的参数,该函数添加前两个 int 字段“a”和“b”并将结果放入 int 字段'C'。没有从编译器得到任何东西,所以很明显我做错了什么。我只是不知道是什么。任何帮助,将不胜感激。
#include <stdio.h>
struct add{
int a;
int b;
int c;
}
void add_fields(struct add *d){
d->c = a + b;
}
main(){
struct add data;
data.a = 1;
data.b = 2;
data.c = 0;
add_fields(data);
printf("%d + %d = %d", data.a, data.b, data.c);
}
【问题讨论】:
-
“没有从编译器得到任何东西,所以很明显我做错了什么。”这是什么意思?编译器不会发出错误吗?您的编译器的错误和警告消息是否完全启用?
-
关于编译器警告,如果您使用的是 gcc,请尝试 -Wall 选项。我假设这也应该是 ANSI C,在这种情况下,您应该使用 -ansi 并将 main() 设为 int 类型。
-
当我说我没有从编译器得到任何东西时,我的意思是我有错误。抱歉不清楚。
-
当您的问题涉及错误信息时,您也应该发布错误信息。
标签: c function parameters struct