我在指針和結構中使用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