我在指针和结构中使用C有一些问题: 我有2个实体结构Signal
和指针activeSignal
来存储其中一个实体。现在,我想在我的函数printParameters()
中使用这个“存储”实体来打印我的结构的值。不幸的是,我的微控制器显示器打印了一些象形文字,而不是我的价值。我不得不承认,我并没有完全看透指针算术......函数中使用的结构上的指针
struct SigParameter {
char *name;
int value;
};
struct Signal {
struct SigParameter signalchar;
};
int main(void) {
struct Signal s1;
struct Signal s2;
s1.signalchar.name = "Sinus";
s2.signalchar.name = "Rect";
struct Signal *activeSignal = &s1;
printParameters(activeSignal);
}
void printParameters(struct Signal *s) {
lcdPrintf(0,11,9,"%s", s->signalchar.name);
}
我绝不是C专家,但这看起来确实对我很好。如果用简单的'“Hello”替换's-> signalchar.name',它能正常工作吗? – 2014-12-09 13:24:59
幽默我一会儿,试试'printf(“%s”,s-> signalchar.name);'。代码对我来说看起来很好;除了'name'应该是一个'const char *'这个事实,如果你给文本赋值的话。 – Bathsheba 2014-12-09 13:25:04
你确定'lcdPrintf'工作正常吗?你尝试过'lcdPrintf(0,11,9,“%s”,“Sinus”);'?在你的结构中添加分号。 – 2014-12-09 13:26:23