gpt4 book ai didi

c - 如何在 C 中定义全局常量 char 指针并在整个文件中重新定义指向值

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:05 25 4
gpt4 key购买 nike

我是 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 或其他一些功能。 (你使用 = 的其他地方不是赋值,它们是初始化。)

关于c - 如何在 C 中定义全局常量 char 指针并在整个文件中重新定义指向值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26450469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com