我是 C 的新手,我想做的是定义一个具有常量地址的指针,这是我在 testHeader.h 中的尝试:
char const *MY_VAR_P = (char * const)(0x4fffff);
extern char MYVAR;
然后在 test.c 的全局中(但我想在其他 .c 文件中重用具有相同地址的相同指针...):
#include "testHeader.h"
char MYVAR = '0';
*MY_VAR_P = MYVAR;
这是错误:
test.c:33: warning: type defaults to `int' in declaration of `MY_VAR_P'
test.c:33: conflicting types for `MY_VAR_P'
test.h:2: previous declaration of `MY_VAR_P'
test.c:33: warning: initialization makes pointer from integer without a cast
test.c:33: initializer element is not constant
我真的不明白......请有人能帮助我吗?
谢谢!
该行有两个问题:
MY_VAR_P
具有类型指向常量 char 的指针。您不能通过该指针修改 MY_VAR_P
指向的内容。也许您的意思是该变量是一个指向 char 的常量指针?
char * const MY_VAR_P = ...;
您不能在函数外运行代码。分配 *MY_VAR_P = foo
需要进入您的 main 或其他一些功能。 (你使用 =
的其他地方不是赋值,它们是初始化。)
我是一名优秀的程序员,十分优秀!