我試圖通過常量指針訪問結構元素。程序的工作原理應該如此,但是我得到了'不兼容的指針類型'和'(接近'設置'初始化)'的初始化警告''。我真的不知道如何正確使用它。有人可以幫我解決這個問題嗎?常量結構中的結構元素的常量指針
這裏是我的代碼:
這只是一個較大部分的片段。想法是通過指向const結構的指針來訪問結構變量x,y。希望這是有道理的。
#include <stdio.h>
#define PGM_STR(X) ((const char[]) { X })
struct SettingsStruct
{
unsigned int x;
unsigned int y;
}Settings;
\t
struct constitem
{
\t const char * const text;
\t const struct constitem *next;
\t const struct SettingsStruct * settings;
};
struct constitem const A;
struct constitem const B = {PGM_STR("x"), &A, &Settings.x };
struct constitem const A = {PGM_STR("y"), &B, &Settings.y };
static const struct constitem *currMenuPtr=&A;
void main()
{
\t Settings.x = 1;
\t Settings.y = 2;
\t printf("%s\n",currMenuPtr->text);
printf("%d\n",*(currMenuPtr->settings));
currMenuPtr = currMenuPtr->next;
\t
\t printf("%s\n",currMenuPtr->text);
\t printf("%d\n",*(currMenuPtr->settings));
}