【发布时间】:2019-12-20 13:48:31
【问题描述】:
我想创建一个简单的程序来更好地理解指针的工作原理,但遇到了一个问题。我想处理 3 个文件 main.c modul.c 和 modul.h。
modul.h
typedef struct
{
int data;
}w_options;
int show(); //prototype of function
modul.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "modul.h"
int show()
{
w_options *color;
color = (w_options *)malloc(sizeof(w_options));
printf("%d\n", color->data);
if (color->data == 1)
{
printf("Good\n");
}
else
{
printf("Bad\n");
}
}
main.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "modul.h"
int main()
{
w_options *color;
color = (w_options *)malloc(sizeof(w_options));
color->data=1;
printf("%d\n", color->data);
show();
}
在 main.c 中,我将 color->data 的值设置为 1,它正在工作,正在打印 1。但我想将此设置值传递给 modul.c。这就是我创建简单的if 指令来检查值是否通过的方式。不幸的是,该值没有通过,我不知道如何修复它。我的大型程序需要这种解决方案。
输出:
1
0
Bad
【问题讨论】:
-
你没有向
show()传递任何东西? -
您是否知道
show中的(本地)color变量与main中的color变量不同?您需要修改该函数的签名并实际传递该变量。